这是我对Angular的第一次尝试。我试图从Internet运行现有的代码,它给出了错误:
Error: error:areq Bad Argument
Argument 'ngAddressListController' is not a function, got undefined
此代码适用于AngularJS< 1.3但它在1.3 +
中给出了问题代码如下:
HTML
<!doctype html>
<html ng-app="">
<head>
<title>Ng Addressbook</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js"></script>
<script src="main.js"> </script>
</head>
<body>
<div ng-controller="ngAddressListController">
<h3>Ng Address Book</h3>
<div id="container">
<h3>There are 4{{contacts}} Contacts So far</h3>
<ul>
<li>
<span>First Name</span>
<span>Last Name</span>
</li>
</ul>
</div>
</div>
</body>
</html>
main.js
function ngAddressListController($scope)
{
$scope.contacts = [
{first_name:'Jane', last_name:'Doe'},
{first_name:'Jhon', last_name:'Doe'}
];
}
似乎Angular&lt; 1.3是,我应该坚持下去?
答案 0 :(得分:1)
我当然不知道,但鉴于你用于定义控制器的方法(具有全局功能)在AngularJS文档中直到1.2.19然后在1.2.20中消失了,我认为这种方法已被弃用。
定义控制器的传统方法如下:
// define an app module
angular.module('myApp', [])
// add a controller to it
.controller('ngAddressListController', ['$scope', function ($scope) {
$scope.contacts = [
{first_name:'Jane', last_name:'Doe'},
{first_name:'Jhon', last_name:'Doe'}
];
}]);
然后在您的HTML中,您将使用应用的名称:
<html ng-app="myApp">
此样式在版本1.2.20以后的ngController文档的顶部使用。
https://docs.angularjs.org/guide/controller
另见1.2.19文档中的注释:
注意:虽然Angular允许您在全局范围内创建Controller函数,但不建议这样做。在实际应用程序中,您应该为您的应用程序使用Angular模块的.controller方法,如下所示