javascript - Angularjs Controller 不工作,抛出错误(新手)

标签 javascript html angularjs model-view-controller single-page-application

我正在使用 angular-seed 项目。 我正在尝试从 mysql 数据库中检索数据。 我需要知道如何为每个 View 定义不同的 Controller 。 例如,我有这样的结构:

js
|_modules
  |_companies
     |_controller.js
     |_data.js
|_app.js
|_base.js

我已将此路由添加到 app.js

.state('app.companies', {
    url: '/companies',
    title: 'Companies',
    templateUrl: helper.basepath('companies.html'),
    controller: 'companiesCtrl' //THIS THROWS THE ERROR BELOW
})

companies.html 已将脚本添加到页面底部

<script src="app/js/modules/companies/data.js"></script>
<script src="app/js/modules/companies/controller.js"></script>

这是controller.js的代码(也测试了注释部分)

(function() {
    'use strict';

    angular
        .module('appname')
        .controller('companiesCtrl', companiesCtrl);

    companiesCtrl.$inject = ['$scope','companiesData','$log'];
    function companiesCtrl($scope, companiesData, $log) {
        console.log('asd'); //NEVER REACH THIS LOG
    };
});

/*var app = angular
.module('appname')
.controller('companiesCtrl', ['$scope','companiesData','$log', function($scope, companiesData, $log){
console.log('asd'); //NEVER REACH THIS LOG
$scope.companies = {};
Data.get('companies').then(function(data){
    $scope.companies = data.data;
    console.log('($scope.companies)');
});
}]);
*/

但我不断得到

Error: [ng:areq] Argument 'companiesCtrl' is not a function, got undefined

如果我在我的 View 上编写脚本 ng-controller="companiesCtrl" 也是如此。

最佳答案

将您的功能更改为:

(function() {    
 'use strict';

    angular
        .module('appname')
        .controller('companiesCtrl', companiesCtrl);

    companiesCtrl.$inject = ['$scope','companiesData','$log'];
    function companiesCtrl($scope, companiesData, $log) {
        console.log('asd'); //NEVER REACH THIS LOG
    };
})();// execute this function then it will work 

参见 this example如果你删除 () breaket 那么它会给你错误。

如果可能,那么创建这样的 Controller :

angular.module('appname')
  .controller('companiesCtrl', ['$scope', function($scope) {
      console.log('asd'); //NEVER REACH THIS LOG
}]);

关于javascript - Angularjs Controller 不工作,抛出错误(新手),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389260/

相关文章:

javascript - document.click 没有一个 div

javascript - 在 Ant.design 和 React.js 中获取 Radio 的文本

javascript - 带有样式溢出的嵌套 div 的 jQuery 可拖动 div :auto

javascript - 两个空格之间的差异

JavaScript、内存泄漏、垃圾收集。尝试简单的出路?

javascript - 我需要表格 :hidden to output value attribute enclosed in single quotes

javascript - 如何使用键盘上的键 "c"创建键盘快捷键来调用函数

javascript - Angular 2 添加样式(css,js)

angularjs - 显示 "{{foo}}"字符串,而不是内容

angularjs - 使用 Angular-formly 时动态添加指令