从 ko.observableArray 中删除项目

Removal of item from ko.observableArray

本文关键字:删除项目 observableArray ko      更新时间:2023-09-26

我想从 ko.observableArray 中删除一个对象我有两个可观察数组

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("行会导致异常,表示删除不是一个函数。删除"项目"的最佳方法是什么?

removeko.onservableArray的特殊功能。

但是,当您在末尾使用 () 编写self.arrayA();时,您返回的是没有remove函数的底层 JavaScript 数组,并且会出现异常。

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

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