如何解决 angular 模块未定义
How to solve angular module got undefined
我在不同的文件中有四个控制器
- 发票控件
- 计费控制
- 发票支付控件
- InvoiceViewCtrl
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',[])
创建一个新模块。
您需要构建代码以创建模块一次,然后再使用它们。然后通过获取对之前创建的模块的引用来附加控制器:
var module = angular.module('invoice.controller');
我会这样做:
在 app.js 文件中我会做:
angular.module('invoice.controller',[]);
angular.module('test',[]);
然后,在每个其他文件中,我将使用
引用该模块
var 模块 = angular.module('invoice.controller');
module.controller('InvoiceCtrl',...)
你这样做的那一刻:
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!';
});
注意到模块上缺少 [] 了吗?这是因为使用 [] 创建了应用程序本身的另一个实例:)
我在不同的文件中有四个控制器
- 发票控件
- 计费控制
- 发票支付控件
- InvoiceViewCtrl
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',[])
创建一个新模块。
您需要构建代码以创建模块一次,然后再使用它们。然后通过获取对之前创建的模块的引用来附加控制器:
var module = angular.module('invoice.controller');
我会这样做:
在 app.js 文件中我会做:
angular.module('invoice.controller',[]); angular.module('test',[]);
然后,在每个其他文件中,我将使用
引用该模块var 模块 = angular.module('invoice.controller'); module.controller('InvoiceCtrl',...)
你这样做的那一刻:
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!';
});
注意到模块上缺少 [] 了吗?这是因为使用 [] 创建了应用程序本身的另一个实例:)