简体   繁体   English

从ko.observableArray中删除项目

[英]Removal of item from ko.observableArray

I want to remove an object from an ko.observableArray I have two observableArrays 我想从ko.observableArray中删除一个对象,我有两个observableArrays

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

then in a function I want to remove an item. 然后在一个功能,我想删除一个项目。

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

The line "arrayToRemoveFrom.remove(item)" causes an exception, saying remove is not a function. “ arrayToRemoveFrom.remove(item)”行导致异常,表示remove不是函数。 What would be the best way to remove "item"? 删除“项目”的最佳方法是什么?

remove is a special function of the ko.onservableArray . removeko.onservableArray特殊功能

However when you write self.arrayA(); 但是,当您编写self.arrayA(); with the () at the end you are returning the underlaying JavaScript array which does not have a remove function and you get the exception. 最后带有()的您将返回不具有remove函数的底层JavaScript数组,并且您会收到异常。

To fix your code you just need to remove the () : 要修复您的代码,您只需删除()

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM