【问题标题】:Removal of item from ko.observableArray从 ko.observableArray 中删除项目
【发布时间】:2014-12-21 20:03:01
【问题描述】:

我想从 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)”行导致异常,表示 remove 不是函数。删除“项目”的最佳方法是什么?

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

    remove 是一个special 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);   
    } 
    

    【讨论】:

    • 优秀。太简单。谢谢,nemesv! :)
    猜你喜欢
    • 1970-01-01
    • 2013-12-23
    • 2021-10-19
    • 1970-01-01
    • 2015-06-02
    • 2011-09-18
    • 2016-07-07
    • 2012-05-29
    • 1970-01-01
    相关资源
    最近更新 更多