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。 –