我有一个服务,它发出一个GET请求并传递一个启动参数。起始参数在工厂内递增 this.start ++
当我点击一个链接时,服务需要发出请求,但是start参数没有被重置,它只是不断递增。我不想在调用之前引入重置函数将其设置为0,因为当我必须跟踪multie属性时会变得混乱。
我理解为什么会发生这种情况,因为我的应用中只有一个工厂实例。 但我不知道将工厂重置为原始状态的角度方式是什么。
有什么建议吗?
谢谢。
修改
myApp.factory('myFactory', function ($http) {
return{
start: 0,
get: function() {
var that = this;
return $http({
method: 'GET',
url: 'some-url',
params: that.getParams(),
}).success(function(data){
that.start++;
});
},
});
myApp.factory('myFactory1', function (myFactory) {
myFactory.getParams = function() {
return {
limit:10,
custom: true,
name: 'some-name',
start: myFactory.start
};
}
return myFactory;
});
myApp.factory('myFactory2', function (myFactory) {
myFactory.getParams = function() {
return {
limit:5,
custom: false,
surname: 'some-surname'
start: myFactory.start
};
}
return myFactory;
});
所以在这种情况下,当我点击不同的链接(或浏览器后退/前进)时,调用myFactory1或myFactory2,根据不同的参数获取GET数据。问题是,由于服务是单例,因此启动参数不断更新。我可以通过myFacroty1或2复位功能,但看起来不对