首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS:在$provide时注入依赖项

AngularJS:在$provide时注入依赖项
EN

Stack Overflow用户
提问于 2013-08-05 16:18:10
回答 2查看 364关注 0票数 0

我是AngularJS的新手。我试图在salesforce CRM plarform中开发一个单页面应用程序。我想按需加载依赖项,即仅当用户单击特定链接时加载依赖项。我也通过使用https://github.com/matys84pl/angularjs-requirejs-lazy-controllers实现了这一点

上面的链接仅包含指令的示例。我在同一个路由配置文件中添加了服务和过滤器。

代码语言:javascript
复制
function registerServices(service) {    
  if(service) {
    if (!$provide){ throw new Error("Error: $setProvide is not set!"); }
    $provide.value(service[0], service[1]);
  } else {
    $provide.value = null; 
  }
}

我正在注册一个类似上面的服务,它可以用作

代码语言:javascript
复制
service = ['serviceName', function(){
   return {
     a: 1, b:2
   }
}]

一切都运行得很好,但我的疑问是,如何在上面的代码中注入$q、$rootScope等依赖项。

EN

回答 2

Stack Overflow用户

发布于 2013-08-05 16:27:01

我不知道什么是延迟加载,但是如果延迟加载可以工作,那么标准的注入方法可能会工作

代码语言:javascript
复制
service = ['serviceName', '$rootScope','$q', function($rootScope, $q){
   return {
     a: 1, b:2
   }
}]
票数 0
EN

Stack Overflow用户

发布于 2013-08-06 21:33:08

我有一个解决这个问题的方法,我不确定这个方法是否合适。

控制器

代码语言:javascript
复制
var controller = function($scope, customService){
   $scope.name = "hello world";
   customService($q, $rootScope).then(function(data){ 
      console.log(data);
      /*Received data can be manipulated*/ 
   });
}

服务

代码语言:javascript
复制
'use strict';
define(function () {
    return ['customService', function($q, $rootScope){
        var deferred = $q.defer();
        /*Your code*/
        return deferred.promise;
    }];
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18053530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档