我有四个控制器在不同的文件中
2、3、4 有这个 angular.module('invoice.controller',[])
1 有这个 angular.module('test',[])
在我的 app.js 中我使用以下代码
angular.module('invoiceapp', ['invoice.controller','test','starter.services','ngDialog','angularMoment'])
现在每当我尝试将 1 更改为 2,3,4
Argument 'InvoiceCtrl' is not a function, got undefined
我还尝试删除每个控制器的 angular.module 中的 []
任何人都知道如何解决这个问题
提前致谢!
P.S 每个控制器都在单独的文件中。
billing.controller.js
payment.controller.js
invoice.controller.js
view.controller.js
angular.module('invoice.controller', [])
.controller('BillingCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Billing OK!';
});
angular.module('invoice.controller', [])
.controller('InvoicePaymentCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Invoice Payment OK!';
});
angular.module('invoice.controller', [])
.controller('InvoiceCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Invoice OK!';
});
angular.module('invoice.controller', [])
.controller('InvoiceViewCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Invoice View OK!';
});
当你这样做的那一刻:
angular.module('invoice.controller', [])
你创建了一个全新的模块,你可以省略后续的模块声明,只使用像这样的控制器:
// app.js file
angular.module('invoice.controller', [])
// File #1
angular.module('invoice.controller')
.controller('BillingCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Billing OK!';
})
// File #2
angular.module('invoice.controller')
.controller('InvoicePaymentCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Invoice Payment OK!';
})
// File #3
angular.module('invoice.controller')
.controller('InvoiceCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Invoice OK!';
})
// File #4
angular.module('invoice.controller')
.controller('InvoiceViewCtrl', function($scope,$http,Dialogs,Invoices){
$scope.status = 'Invoice View OK!';
});
注意到模块上缺少 [] 吗?这是因为使用 [] 创建了应用程序本身的另一个实例:)
此代码:
angular.module('invoice.controller',[])
创建一个新模块。
在使用模块之前,您需要构建代码以创建模块一次。然后通过获取对之前创建的模块的引用来附加控制器:
var module = angular.module('invoice.controller');
我会这样做:
在 app.js 文件中我会这样做:
angular.module('发票.controller',[]); angular.module('测试',[]);
然后,在每个其他文件中,我将使用
引用该模块var module = angular.module('invoice.controller'); module.controller('InvoiceCtrl',...)