我是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等。
答案 0 :(得分:0)
我不知道延迟加载但是,如果延迟加载工作,则标准注射方法可能有效
service = ['serviceName', '$rootScope','$q', function($rootScope, $q){
return {
a: 1, b:2
}
}]
答案 1 :(得分:0)
我有解决这个问题的方法,我不确定方法是否合适。
<强>控制器强>
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;
}];
})