Javascript 从未调用AngularJS控制器函数
我的angularjs控制器函数从未被调用。我看到了我的源代码中包含的所有js文件,但它从来没有影响到我的控制器的初始化。这个代码有什么问题 eventListCtrl.js:Javascript 从未调用AngularJS控制器函数,javascript,angularjs,Javascript,Angularjs,我的angularjs控制器函数从未被调用。我看到了我的源代码中包含的所有js文件,但它从来没有影响到我的控制器的初始化。这个代码有什么问题 eventListCtrl.js: eventsApp.controller('eventListCtrl', ['$scope', function ($scope) { // this code is never called alert('controller initializing'); $scope.name = "Te
eventsApp.controller('eventListCtrl', ['$scope', function ($scope) {
// this code is never called
alert('controller initializing');
$scope.name = "Test";
}]);
app.js:
'use strict';
var eventsApp = angular.module('eventsApp', []);
Index.cshtml:
<div ng-controller="eventListCtrl">
<div class="row">
<div class="spann11">
<h2>{{name}}</h2>
</div>
</div>
</div>
<script src="/scripts/vendor/angular.js"></script>
<script src="/scripts/app.js"></script>
<script src="/scripts/controllers/eventListCtrl.js"></script>
{{name}}
胡乱猜测:
angular.module('eventsApp').controller('eventListCtrl', ['$scope', function ($scope) {
// this code is never called
alert('controller initializing');
$scope.name = "Test";
}]);
在控制器文件中?您需要执行此操作
<html ng-app="eventsApp">
所以你实际上激活了模块我想在这里发布我的问题/解决方案,以防有人和我做同样的事情
<div ng-controller="coolCtrl" ng-if="VAR">
我试图在未创建的元素上初始化控制器(因为ng if=“var”
)facepalm
{{name}}
这应该可以解决问题您是否有
ng app=“eventsApp”
任何地方?您是否在控制器中重新创建了eventsApp
?同意此评论。如果您忘记了,请将ng应用程序
放在
之外。这正是我第一次看到问题时的想法。AngularJS是一个非常好的试用版。这没有什么区别,这和他之前所做的完全一样。模块上的API非常糟糕。添加第二个参数会使其成为初始值设定项,人们会感到困惑。@Connor not true。除非他将eventsApp
global设置为非常糟糕的,在这种情况下,答案仍然是建议最佳做法。@JoeMinichino它是全局的,如帖子中所示:)而且,在生产中,它很可能会连接您的文件,而将名称空间设置为globalDoh并不是一种坏做法,我不确定我是如何错过了这一点!非常感谢。我犯了同样的错误,在控制器包装上添加了ng show:)
<html ng-app="eventsApp">
<div ng-controller="eventListCtrl">
<div class="row">
<div class="spann11">
<h2>{{name}}</h2>
</div>
</div>
</div>
<script src="/scripts/vendor/angular.js"></script>
<script src="/scripts/app.js"></script>
<script src="/scripts/controllers/eventListCtrl.js"></script>
</html>