【问题标题】:Knockout remove function on observable array not working可观察数组上的敲除删除功能不起作用
【发布时间】:2019-05-17 14:47:10
【问题描述】:

在我的淘汰赛应用程序中,我尝试使用remove 方法删除一个元素。 但我得到了错误

.remove 不是函数

下面是代码

ActivityArray = ko.observable([]);
ActivityArray(result.Regular); //Result of an api call    
ActivityArray.remove(function (element) { return element.Name === 'abc'; })

无法理解为什么它不起作用。我在其他地方使用过remove,其他地方都可以正常工作。

请指导

谢谢

【问题讨论】:

    标签: javascript knockout.js observable


    【解决方案1】:

    .remove 函数仅适用于observableArray。但是您将ActivityArray 设置为observable。将其更改为observableArray

    ActivityArray = ko.observableArray([]);
    

    【讨论】:

      【解决方案2】:

      您必须使用observableArray (https://knockoutjs.com/documentation/observableArrays.html),而不是observable

      var viewmodel = function(){
        var self = this;
        var ActivityArray = ko.observableArray([]);
        var result = {
          "Regular":[
            {"Name": "abc"},
            {"Name": "xyz"}
          ]
        };
        ActivityArray(result.Regular); //Result of an api call
        console.log("Before remove: ", ActivityArray());
        ActivityArray.remove(function (element) { return element.Name === 'abc'; });
        console.log("After remove: ", ActivityArray());
      
      };
      
      ko.applyBindings(new viewmodel());
      <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

      【讨论】:

        猜你喜欢
        • 2012-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-01
        • 2016-11-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-21
        相关资源
        最近更新 更多