angularjs - Angular-JS strict-DI 不喜欢从 $routeProvider 注入(inject)解析的结果

标签 angularjs

我在缩小 Angular 代码时遇到了一些问题,所以我打开了 ng-strict-di

一个问题似乎在于我在 app.js 配置中解决路由 promise 的方式

.when('/:userId', {
           templateUrl: 'views/main.html', 
           controller: 'MyCtrl',  
           resolve : {
               myDependency : function(Cache, Model, $route){ 
                  return Cache.getCached( $route.current.params.userId); 
               } 
           }
      })

然后我将这个已解决的 promise 注入(inject) MyCtrl Controller
angular.module('myApp') 
    .controller('MyCtrl',[ 'myDependency',  '$scope', '$rootScope', '$timeout', function (myDependency, $scope, $rootScope, $timeout) { 
 etc... 

但是我从 Angular 得到一个错误
[Error] Error: [$injector:strictdi] myDependency is not using explicit annotation and cannot be invoked in strict mode 

该问题似乎可以追溯到 app.js 中的解析定义,因为我可以在解析中更改“myDependency”的名称,并且错误消息使用那里的名称而不是 myCtrl 中的依赖项名称。我在 myCtrl Controller 中明确列出了依赖项的名称。该应用程序有效,但由于此错误的问题,我无法缩小此代码。

最佳答案

也遵循 strict-di 来解决。希望这有效!

resolve : {
           myDependency : ['Cache', 'Model', '$route', function(Cache, Model, $route){ 
               return Cache.getCached( $route.current.params.userId); 
           } 
     ]}

关于angularjs - Angular-JS strict-DI 不喜欢从 $routeProvider 注入(inject)解析的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392618/

相关文章:

angularjs - 是否可以为同一个 View 使用两个 Controller ?最好用ui-router

javascript - Angular JS 中的 If 语句 (Ngif)

javascript - Protractor - 如何处理大量动画的网站?

javascript - Angular ng-repeat 在我输入 td 之前没有显示任何数据

angularjs - 动态加载多个入口点并分割输出

javascript - 如何以 Angular 显示图像(服务器端上传文件夹中的图像上传和angularjs在不同的服务器上工作)?

javascript - 在 AngularJS 中访问脚本内的范围变量

angularjs - 如何正确实现 angularFireAuth?

AngularJS Flash 消息清除

javascript - 如何使用 Angular Directive(指令)包装元素?