从ko.observableArray中删除项目

时间:2014-12-21 20:03:01

标签: javascript knockout.js

我想从ko.observableArray中删除一个对象 我有两个observableArrays

self.arrayA = ko.observableArray();
self.arrayB = ko.observableArray();

然后在一个函数中我想删除一个项目。

self.myRemoval = function(item){
    var arrayToRemoveFrom;
    if ( somelogic ) {
        arrayToRemoveFrom = self.arrayA();  
    }
    else {
        arrayToRemoveFrom = self.arrayB(); 
    }
    arrayToRemoveFrom.remove(item);   
} 

“arrayToRemoveFrom.remove(item)”行导致异常,说删除不是函数。删除“item”的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

removespecial function of the ko.onservableArray

但是当您在self.arrayA();处写()时,您将返回没有remove函数的底层JavaScript数组,并且您将获得异常。

要修复代码,只需删除()

即可
self.myRemoval = function(item){
    var arrayToRemoveFrom;
    if ( somelogic ) {
        arrayToRemoveFrom = self.arrayA;  
    }
    else {
        arrayToRemoveFrom = self.arrayB; 
    }
    arrayToRemoveFrom.remove(item);   
}