现在,我希望创建一个可以随时实例化但仍可以使用角度服务的对象:
以以下对象为例:
var myObject = function (variableOne, variableTwo) {
this.variableOne = variableOne;
this.variableTwo = variableTwo
};
myObject.prototype.useAngularService = function () {
return $sessionStorage.user;
};
当然,该
object
不能使用$sessionStorage
,但是我的问题是,您将如何创建一个可以利用角度服务的对象?我之所以要使用此方法而不是服务或工厂,基本上是因为我想要该对象的不同实例,并且我不寻找单例解决方案。
最佳答案
您可以从factory
返回您的类型。然后工厂将提供Angular服务,您将在它们附近关闭。
yourModule.factory('yourName', function($sessionStorage) {
var myObject = function (variableOne, variableTwo) {
this.variableOne = variableOne;
this.variableTwo = variableTwo
};
myObject.prototype.useAngularService = function () {
return $sessionStorage.user;
};
return myObject;
});
您也可以使用
$injector.get(...)
请求任何已注册的服务,但这会使代码变脆。