可观察阵列上的敲除删除功能不起作用

时间:2018-12-17 08:57:34

标签: javascript knockout.js observable

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

  

。删除不是功能

下面是代码

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

无法理解为什么它不起作用。我在其他地方和其他地方都使用过remove,效果很好。

请指导

谢谢

2 个答案:

答案 0 :(得分:2)

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

ActivityArray = ko.observableArray([]);

答案 1 :(得分:0)

您必须使用observableArrayhttps://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>