我已经定义了这样的服务:
angular.module('myApp').service('myService', [ '$rootScope', ... ...
我希望仅为新用户实例化我的服务(即当user.createdAt>今天)。
因此,如果用户是老用户,有没有办法有条件地注入我的服务或至少销毁我的服务而没有任何副作用。
$injector如果需要,您可以使用该服务动态获取可注射对象:
$injector
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
作为一般准则,尽管我建议您不要设计您的服务,使其仅注入它们会产生副作用。