为什么我们需要将注入元素' $ stateProvider' $#urlRouterProvider'在[]中,我发现一些教程视频,他们只是删除它们并且工作正常,所以我也删除了相同的,但在部署到Web服务器时遇到以下错误的问题。
我的问题是为什么我们需要将注入元素放在[]中,谢谢。
未捕捉错误:[$ injector:modulerr] http://errors.angularjs.org/1.5.0/ $ injector / modulerr?p0 = app& p1 =错误%3A%... es%2Fangular%3Fv%3DZGvZMulw2S5nigpn4yQz50dopAtRo-XYhjiW0UOpfnM1%3A25%3A449({{3 $ injector / modulerr?p0 = app& p1 =错误%3A %% E2%80%A6es%2Fangular%3Fv%3DZGvZMulw2S5nigpn4yQz50dopAtRo-XYhjiW0UOpfnM1%3A25%3A449))
var app = angular.module("app", ['ui.router', 'ngTouch', 'ngMaterial', 'ngMessages', 'ngAnimate'])
app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/category');
$stateProvider
.state('category', {
url: '/category',
templateUrl: '../../app/CategoryViewer/Category.html',
controller: 'CategoryController'
});
}]);
答案 0 :(得分:1)
在缩小角度后无法找到注入的模块。因此,要么定义它们,要么使用ng-annotate
。
我只是喜欢使用Inline数组方法来避免应用程序破坏和简单的代码..
angular.module('myApp', []);
MyController.$inject = ['$scope', '$route', 'Item', 'items', 'utils', 'shade'];
angular.module('myApp')
.controller('MyController', MyController);
function MyController($scope,$route,Item,items,utils,shade) {
// do something
}
答案 1 :(得分:0)
据我所知, 使用[]语法进行注入会授予在缩小过程之后,angular将能够找到我们的控制器,服务等。