1
У меня есть личные значения в моем сервисе Factory, но когда я обновляю личное значение в одном экземпляре, все экземпляры также обновляются.Частные значения на Angular Factory
Что лучший способ добиться этого без обновления всех экземпляров:
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
Спасибо !! Я узнал об этом. Im, идущий со вторым подходом, объект может стать очень сложным на пути, и частные методы будут важны. Не совсем уверен, почему Angular выбирает этот aproach для обслуживания singleton, когда вы можете использовать .prototype для совместного использования общих методов. Спасибо JB. –