我想在我的应用程序中包含几个第三方Angular模块.以前我只创建了简单的应用程序,我只是使用ng-app来引导并将我的代码放在控制器中.
从我的理解,我应该在我的HTML中有类似的东西:
<html ng-app"myApp">
Run Code Online (Sandbox Code Playgroud)
那我的JS应该是这样的:
angular.module('myApp',['thirdPartyModule1','thirdPartyModule2']);
var myCtrl = function($scope, myApp, $http){
//my stuff
};
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到一个错误:
Error: Unknown provider: myAppProvider <- myApp
Run Code Online (Sandbox Code Playgroud)
您不需要将myApp注入控制器.您的控制器应该像这样定义:
angular.module('myApp',['thirdPartyModule1','thirdPartyModule2']);
var myCtrl = function($scope, $http){
//my stuff
});
Run Code Online (Sandbox Code Playgroud)
使它更"标准":
var myApp = angular.module('myApp',['thirdPartyModule1','thirdPartyModule2']);
myApp.controller('myCtrl', function($scope, $http){
//my stuff
});
Run Code Online (Sandbox Code Playgroud)
这样,您可以根据需要引用您的应用.
现在使其与minifiers/beautifiers/closure编译器兼容:
var myApp = angular.module('myApp',['thirdPartyModule1','thirdPartyModule2']);
myApp.controller('myCtrl', ['$scope','$http', function($scope, $http){
//my stuff
}]);
Run Code Online (Sandbox Code Playgroud)
这基本上使控制器参数成为一个数组,其中数组的第一个成员是你要注入的.这是因为minifier会将参数转换为随机字母,function(a,b)而angular将不知道你要注入的是什么.通过在数组中传递字符串,你将被缩小['$scope','$http', function(a,b)],因为这样很好,因为数组中的前两个参数告诉angular要注入什么.
| 归档时间: |
|
| 查看次数: |
3626 次 |
| 最近记录: |