淘汰条件绑定奇怪的行为

问题描述 投票:0回答:1

我希望在接到未接来电时显示未接来电图标,所以为此我维持一个未接来电列表,我将其与当前ID进行比较,如下所示

<div class="col m1" data-bind="visible:$component.missedCallList().indexOf($data._id)>=0">
   <img src="${require(`./../../../../icons/icon-missed-call.svg`)}" alt="" class="responsive-img _badges">
 </div>

但是,当列表更新或为空时,可见性不会切换。 所以在某个事件上,我正在删除条目,如

removeFromList(index){
  if (index >= 0) {
            this.missedCallList().splice(index, 1)
        }
}

但它没有在UI上更新。

javascript if-statement knockout.js condition visible
1个回答
0
投票

当你打电话给()时,你不需要splice。而是直接在可观察数组上调用splice

EG

missedCallList.splice(index, 1)

同样在你的代码中this可能指的是remove函数,它可能应该引用父missedCallList属性。您可以将this设置为父作用域中的另一个变量,并从函数中访问该变量。

EG

var self = this;

function removeFromList(index) {
  if (index >= 0) {
    self.missedCallList.splice(index, 1);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.