我已经定义了这样的服务:
angular.module('myApp').service('myService',[ '$rootScope',... ...
我希望我的服务仅为新用户实例化(即今天user.createdAt>).
那么有没有办法有条件地注入我的服务或至少破坏我的服务,如果用户是旧的,没有任何副作用.
如果需要,您可以使用$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 docs:https://docs.angularjs.org/api/auto/service/$injector
作为一般指导,虽然我建议不要设计您的服务,只需注入它们就会产生副作用.