控制器不是函数,而是未定义的,同时全局定义控制器。我正在使用angularjs编写一个示例应用程序。下面提到了一个在Chrome浏览器上提到的错误。错误是错误:[Ng:areq]http:/errors.angularjs.org/1.3.0-beta.17/ng/areq?p0=ContactController&p1=Not%20a%20 function%2C%20 get%20未定义呈现为参数‘ContactController’不是函数,未定义电码<!DOCTYPE html><html ng-app><head>
<script src="../angular.min.js"></script>
<script type="text/javascript">
function ContactController($scope) {
$scope.contacts = ["abcd@gmail.com", "abcd@yahoo.co.in"];
$scope.add = function() {
$scope.contacts.push($scope.newcontact);
$scope.newcontact = "";
};
}
</script> </head><body>
<h1> modules sample </h1>
<div ng-controller="ContactController">
Email:<input type="text" ng-model="newcontact">
<button ng-click="add()">Add</button>
<h2> Contacts </h2>
<ul>
<li ng-repeat="contact in contacts"> {{contact}} </li>
</ul>
</div></body> </html>
3 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
module.controller
angular.module('app', []) .controller('ContactController', ['$scope', function ContactController($scope) { $scope.contacts = ["abcd@gmail.com", "abcd@yahoo.co.in"]; $scope.add = function() { $scope.contacts.push($scope.newcontact); $scope.newcontact = ""; }; }]);
function ContactController($scope) { $scope.contacts = ["abcd@gmail.com", "abcd@yahoo.co.in"]; $scope.add = function() { $scope.contacts.push($scope.newcontact); $scope.newcontact = ""; };}ContactController.$inject = ['$scope'];angular.module('app', []).controller('ContactController', ContactController);
allowGlobals
.
angular.module('app') .config(['$controllerProvider', function($controllerProvider) { $controllerProvider.allowGlobals(); }]);
检查具有给定名称的控制器是否通过
$controllerProvider
检查当前作用域上的字符串是否返回构造函数 如果$控制员提供#lowGlobals,请检查
window[constructor]
在全球
window
对象(不推荐)
.....expression = controllers.hasOwnProperty(constructor) ? controllers[constructor] : getter(locals.$scope, constructor, true) || (globals ? getter($window, constructor, true) : undefined);
请务必将名称放入 ng-app
关于角根元素的指令(例如:- html
)也是。示例:-ng-app=“myApp” 如果一切都很好,而且您仍然会遇到问题,请记住要确保脚本中包含了正确的文件。 您没有在不同的地方两次定义相同的模块,这会导致先前在同一模块上定义的任何实体都将被清除,例如 angular.module('app',[]).controller(..
再一次在另一个地方 angular.module('app',[]).service(..
(当然,这两个脚本都包括在内)可以导致模块上先前注册的控制器。 app
第二次重新设计模块将被清除。
幕布斯6054654
TA贡献1876条经验 获得超7个赞
(function() { ...stuff...});
(function() { ...stuff...})();
注意结尾处的()。
慕运维8079593
TA贡献1876条经验 获得超5个赞
<html data-ng-app>
<html data-ng-app="myApp">
添加回答
举报
0/150
提交
取消