猿问

AngularJS / Dependency Injection-如何在依赖提供程序数组中传递简单

我想在下面概括我的状态代码,以传入一个字符串作为装入的参数,该参数将称为模块,然后在装入调用中对其进行解析以进行延迟装入。简单地添加一个字符串将出错,因为Angular认为它是提供者,并触发了未知的提供者异常。


我怎样才能实现这个目标?


function load ($ocLazyLoad, $q, $stateParams, module){

    var deferred = $q.defer();

    try{

        $ocLazyLoad.load(module).then(function(){

            deferred.resolve();

        });

    }

    catch (ex){

        deferred.reject(ex);

    }

    return deferred.promise;

}



 $stateProvider

    .state('action', {

        name: 'action',

        url: "/actionitems",

        resolve: {

               loadDependencies: ['$ocLazyLoad', '$q', '$stateParams', load]

        },

        templateUrl: '/app/tool/action/ActionItems.html'

  });


森林海
浏览 138回答 1
1回答

慕莱坞森

您需要创建一个constant提供程序。您可以执行以下操作:angular.module('my-module').constant('myConstant', 'my-value');然后在您的状态提供者中:$stateProvider    .state('action', {        name: 'action',        url: "/actionitems",        resolve: {               loadDependencies: ['$ocLazyLoad', '$q', '$stateParams', 'myConstant', load]        },        templateUrl: '/app/tool/action/ActionItems.html'  });function load ($ocLazyLoad, $q, $stateParams, myConstant, module){  // myConstant has the value 'my-value'  ...}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答