我建立一個應用程序在淘汰賽的早期版本,看起來像代碼:在knockoutjs中是對象克隆還是它們引用相同的東西?
this.activeProducts.remove(function(item) { //some code })
我能activeProducts重置爲:
var ProductCollection = function(products, metadata) {
var self = this;
this.allProducts = products;
this.activeProducts = ko.observableArray(products);
然後,如果我從activeProduct陣列狀過濾掉的物品所有的產品通過做這樣的事情:
this.activeProducts(this.allProducts);
但現在看起來好像如果我做刪除功能上面它的刪除產品。 allProducts也是...我傳遞的產品和設置鏈接到相同的參考或東西?我不明白爲什麼現在會發生這種情況,而不是以前。我希望能夠將this.activeProducts和this.allProducts作爲單獨的數組保存。
'products'在這兩種情況下都是相同的數組。你會希望'activeProducts'或者是數組的副本('products.slice(0)'是一種快速的方法),或者你可以使用'computed'觀察值來表示你的產品的過濾版本。 –