1
我的工厂服务有私有价值,但当我在一个实例中更新私有价值时,所有实例也都会更新。Angular工厂的私有价值
最新最好的方式来完成,如果没有更新所有实例:
angular.module('app').factory('instanceItem', function() {
var _valid = true;
var item = function (id,data){
this.id = id;
this.data = data;
};
item.prototype.setValid = function(bool) {
_valid = bool;
}
item.prototype.getValid = function() {
return _valid
}
return { item:item }
});
什么我得到:
var itemA = new instanceItem.item(1,{});
var itemB = new instanceItem.item(2,{});
itemA.setValid(false);
console.log(itemA.getValid());
//False
console.log(itemB.getValid());
//False
什么我找
var itemA = new instanceItem.item(1,{});
var itemB = new instanceItem.item(2,{});
itemA.setValid(false);
console.log(itemA.getValid());
//False
console.log(itemB.getValid());
//True
谢谢!我知道了。在第二种方法中,对象可能会变得非常复杂,私有方法将变得非常重要。不知道为什么Angular选择这个单身服务的时候,你可以使用.prototype来共享常用的方法。 谢谢JB。 –