我已经定义了这样的服务:
angular.module('myApp').service('myService', [
'$rootScope',
...
...
我希望仅为新用户实例化我的服务(即当user.createdAt>今天)。
因此,如果用户是老用户,有没有办法有条件地注入(inject)我的服务或至少销毁我的服务而没有任何副作用。
最佳答案
如果需要,可以使用$injector
服务动态获取可注入(inject)对象:
app.controller('DemoCtrl', function($injector) {
this.clicky = function() {
myFact = $injector.get('myFactory');
myFact();
};
});
app.factory('myFactory', function() {
return function() {
alert('foobar!');
};
});
这是一个完整的演示示例:http://jsbin.com/bemakemaja/1/edit
和
$injector
文档:https://docs.angularjs.org/api/auto/service/$injector作为一般指导原则,我建议您不要设计您的服务,使其仅注入(inject)它们会产生副作用。
关于angularjs - 有条件地在AngularJS中注入(inject)服务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27721530/