2013-02-16 79 views
0

我正在使用knockout_2.0.js。我有一個observableArray,我設置了訂閱。像:如何查看observableArray更改

var Items = ko.observableArray(); 


Items.subscribe(function(newValue){ 

    //I want to check here whether the item is Added or Deleted from the array 

}); 

我該怎麼做?

回答

0

如果您只是想知道是否添加或刪除了某些內容,則可以使用外部範圍上的變量輕鬆跟蹤該內容。

var items = ko.observableArray(); 

var itemLen = items.length; 

items.subscribe(function (newValue) { 

    //I want to check here whether the item is Added or Deleted from the array 
    if (itemLen > items.length) { 
     // Item removed 
    } else if (itemLen < items.length) { 
     // item added 
    } else { 
     // something else was modified 
    } 
    itemLen = items.length; 
}); 
+0

這樣可以在所有添加*和*的情況下工作嗎? – 2013-02-16 06:43:04

0

請嘗試下面的代碼,這可能會有所幫助。

var Items = ko.observableArray(); 
var ItemsLength = ko.observableArray(); 

this.ItemsLength = ko.computed({ 
    read: function() { 
    return this.Items().length; 
    } 
}); 

this.ItemsLength.subscribe(function(newValue){ 

    //you will get control over here whether the 
     item is Added or Deleted from the array 

});