AngularJS: 从单独的 .js 文件注册控制器
AngularJS: Register Controller from separate .js file
我是 AngularJS 的新手,正在使用 plnkr.co 学习如何使用 angular。我在注册控制器时遇到了一些困难,它存储在与模块初始化位置不同的 .js 中。谁能告诉我为什么下面的方法不起作用?
index.html 文件
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js" data-semver="1.4.6"></script>
<script src="app.js"></script>
<script scr="mainCtrl.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
</body>
</html>
app.js 文件
angular.module('plunker', []);
mainCtrl.js 文件
angular.module('plunker')
.controller('MainCtrl', ['$scope', function($scope) {
$scope.name = 'GitHub';
}]);
对我来说,这会产生一个参数 'MainCtrl' 不是函数,未定义。
替换
<script scr="mainCtrl.js"></script>
和
<script src="mainCtrl.js"></script>
由于拼写错误(scr
而不是 src
),未加载包含 MainCtrl
的源文件,因此 MainCtrl
未定义。
我是 AngularJS 的新手,正在使用 plnkr.co 学习如何使用 angular。我在注册控制器时遇到了一些困难,它存储在与模块初始化位置不同的 .js 中。谁能告诉我为什么下面的方法不起作用?
index.html 文件
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.4.x" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js" data-semver="1.4.6"></script>
<script src="app.js"></script>
<script scr="mainCtrl.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
</body>
</html>
app.js 文件
angular.module('plunker', []);
mainCtrl.js 文件
angular.module('plunker')
.controller('MainCtrl', ['$scope', function($scope) {
$scope.name = 'GitHub';
}]);
对我来说,这会产生一个参数 'MainCtrl' 不是函数,未定义。
替换
<script scr="mainCtrl.js"></script>
和
<script src="mainCtrl.js"></script>
由于拼写错误(scr
而不是 src
),未加载包含 MainCtrl
的源文件,因此 MainCtrl
未定义。