我是AngularJS的新手。我试图在salesforce CRM plarform中开发一个单页面应用程序。我想按需加载依赖项,即仅当用户单击特定链接时加载依赖项。我也通过使用https://github.com/matys84pl/angularjs-requirejs-lazy-controllers实现了这一点
上面的链接仅包含指令的示例。我在同一个路由配置文件中添加了服务和过滤器。
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;
}
}我正在注册一个类似上面的服务,它可以用作
service = ['serviceName', function(){
return {
a: 1, b:2
}
}]一切都运行得很好,但我的疑问是,如何在上面的代码中注入$q、$rootScope等依赖项。
发布于 2013-08-05 16:27:01
我不知道什么是延迟加载,但是如果延迟加载可以工作,那么标准的注入方法可能会工作
service = ['serviceName', '$rootScope','$q', function($rootScope, $q){
return {
a: 1, b:2
}
}]发布于 2013-08-06 21:33:08
我有一个解决这个问题的方法,我不确定这个方法是否合适。
控制器
var controller = function($scope, customService){
$scope.name = "hello world";
customService($q, $rootScope).then(function(data){
console.log(data);
/*Received data can be manipulated*/
});
}服务
'use strict';
define(function () {
return ['customService', function($q, $rootScope){
var deferred = $q.defer();
/*Your code*/
return deferred.promise;
}];
})https://stackoverflow.com/questions/18053530
复制相似问题