【问题标题】:AngularJS controller function never called从未调用过 AngularJS 控制器函数
【发布时间】:2014-03-24 15:18:15
【问题描述】:

我的 angularjs 控制器函数永远不会被调用。我看到了我的源代码中包含的所有 js 文件,它只是没有达到我的控制器的初始化。这段代码有什么问题?

eventListCtrl.js:

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', []);

索引.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>

【问题讨论】:

  • 你有ng-app="eventsApp"吗?您是否在控制器中重新创建了eventsApp
  • 同意此评论。如果您忘记了,请将ng-app 放在&lt;div ng-controller="..."&gt; 之外。

标签: javascript angularjs


【解决方案1】:

你需要这样做

<html ng-app="eventsApp">

所以你实际上激活了模块

【讨论】:

  • 哎呀,不知道我是怎么错过的!
【解决方案2】:

我想在这里发布我的问题/解决方案,以防有人和我做同样的事情。

<div ng-controller="coolCtrl" ng-if="VAR">

我试图在未创建的元素上初始化控制器(因为 ng-if="var"
facepalm

【讨论】:

  • 谢谢!我通过在控制器包装器上添加 ng-show 犯了同样的错误:)
【解决方案3】:

猜测:

angular.module('eventsApp').controller('eventListCtrl', ['$scope', function ($scope) {
    // this code is never called
    alert('controller initializing');
    $scope.name = "Test";
}]);

在您的控制器文件中?

【讨论】:

  • 这正是我第一次看到这个问题时的想法。 AngularJS 非常经得起考验。
  • 这没什么区别,和他已经在做的一样
  • module 上的 API 非常糟糕。添加第二个参数使其成为初始化程序,人们会感到困惑。
  • @Connor 不正确。除非他将eventsApp设为全局,否则会非常糟糕,在这种情况下,答案仍然建议最佳实践。
  • @JoeMinichino 它是全局的,如帖子中所见 :) 而且,在生产中,无论如何它可能会连接您的文件,让您的命名空间全局化并不是一个坏习惯
【解决方案4】:
<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>

这应该可以解决它

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多