我正在开发一个基于AngularJS的应用程序。现在我有两个不同控制器的表。但只有一个控制器正在工作。控制器是彼此的副本,但差异很小。
如果我从代码中删除控制器B,则控制器A正在工作 如果我从代码中删除控制器A,则控制器B正在工作。
两个控制器都有自己的js文件。作为最后加载的控制器始终是正在运行的控制器。
两个控制器都不能同时工作。我也在控制台中收到此错误。
Error: [ng:areq] http://errors.angularjs.org/1.2.28/ng/areq?p0=aCtrl&p1=not%20aNaNunction%2C%20got%20undefined
在我的代码下方,因为发布了很多内容而被删除!我也无法使用jsfiddle处理所有代码(对很多依赖项)
aCtrl
(function() {
'use strict';
angular.module('app.tables', []).controller('aCtrl', [
'$scope', '$filter', '$http', function($scope, $filter, $http) {
var init;
$http.get('/data/a.json').success(function(data) {
$scope.stores = data;
return init();
});
$scope.stores = [{}];
// rest of the code
}
]);
}).call(this);
bCtrl(a的副本)
(function() {
'use strict';
angular.module('app.tables', []).controller('bCtrl', [
'$scope', '$filter', '$http', function($scope, $filter, $http) {
var init;
$http.get('/data/b.json').success(function(data) {
$scope.stores = data;
return init();
});
$scope.stores = [{}];
// rest of the code
}
]);
}).call(this);
适用于aCtrl的HTML
<div class="page page-table" data-ng-controller="aCtrl">
<table class="table table-bordered table-striped table-responsive">
<tbody>
<tr data-ng-repeat="store in currentPageStores">
<td>{{store.col1}}</td>
<td>{{store.col2}}</td>
<td>{{store.col3}}</td>
<td>{{store.col4}}</td>
</tr>
</tbody>
</table>
</div>
bCtrl的HTML
<div class="page page-table" data-ng-controller="bCtrl">
<table class="table table-bordered table-striped table-responsive">
<tbody>
<tr data-ng-repeat="store in currentPageStores">
<td>{{store.col1}}</td>
<td>{{store.col2}}</td>
<td>{{store.col3}}</td>
<td>{{store.col4}}</td>
</tr>
</tbody>
</table>
</div>
答案 0 :(得分:3)
我认为这是重新创建模块的情况。你的电话
angular.module(&#39; app.tables&#39;,[])
创建一个模块。由于代码中有2个这样的实例,因此模块会被创建两次,第二个会覆盖第一个。删除第二个声明并将其更改为:
angular.module('app.tables').controller('bCtrl', [ //note the declaration now does not have [] as second parameter