【发布时间】:2025-12-13 23:25:02
【问题描述】:
我创建了一个基于 ng-boilerplate 的应用程序。一切正常。但是,现在我即将部署,我想编译和缩小代码。这使用 grunt compile 已经足够简单了,但是应用程序在缩小时当然会中断。我没想到会少!
我已将依赖项注入到我的控制器中,如下所示:
var appCtrl = app.controller('AppCtrl', function AppCtrl($scope, $rootScope, helpService, userService, menuService, $location) {... body ...});
appCtrl.$inject = ['$scope', '$rootScope', 'helpService', 'userService', 'menuService', '$location'];
我也试过这样:
var appCtrl = app.controller('AppCtrl', ['$scope', '$rootScope', 'helpService', 'userService', 'menuService', '$location',
function AppCtrl($scope, $rootScope, helpService, userService, menuService, $location) {... body ...}]);
我得到的只是这样的错误:错误:未知提供者:aProvider
我还查看了我的服务并以与上述第二种方法类似的方式注入了依赖项,但随后我开始在程序中出现错误,即使它没有被缩小。它告诉我 $q 没有方法 defer()!
app.factory('checkAuth', ['$q', '$location', '$filter', '$rootScope', function ($q, $location, $filter, $rootScope) {...body...}]);
我的问题是,我错过了什么?我是否正确地进行了依赖注入?还有其他地方需要 DI 吗?
谢谢!
编辑: 刚刚发现这个:Angular.module minification bug
它还没有完全解决问题...我现在收到错误:
TypeError: Object #<error> has no method 'slice'
但至少这是远离错误:未知提供者:aProvider
【问题讨论】:
-
第二和第三看起来有效。你是否在你的应用中包含了 ngResource 模块?
标签: angularjs