【发布时间】:2016-03-27 03:33:54
【问题描述】:
我正在使用 angular-seed 项目。 我正在尝试从 mysql 数据库中检索数据。 我需要知道如何为每个视图定义不同的控制器。 例如,我有这样的结构:
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)');
});
}]);
*/
但我不断得到
错误:[ng:areq] 参数 'companiesCtrl' 不是函数,未定义
如果我在我的视图上编写 ng-controller="companiesCtrl" 也是一样。
【问题讨论】:
-
您可以发布您的
app.js的内容以及您的观点吗? -
我认为你必须执行你的函数 (function(){ 'use strict' ..... })();
-
@Amir,是几个js文件的编译代码。至少 1800+ 行。你有什么特别想知道的吗?我会发布它。
-
我认为问题可能出在其他地方,但有人已经发布了答案,我想可能就是这样。你必须调用那个匿名函数:)
-
@leandronn 看看我的回答可能对你有帮助
标签: javascript html angularjs model-view-controller single-page-application