【发布时间】:2021-05-01 12:56:24
【问题描述】:
根据文档,foreach 绑定中的beforeRemovecallback 将为您的回调提供以下参数:
- 一个 DOM 节点被添加到文档中
- 添加数组的索引
- element 添加的数组元素
但我的回调函数的 index 参数中总是得到 0。有人可以告诉我怎么了?代码如下:
【问题讨论】:
标签: knockout.js
根据文档,foreach 绑定中的beforeRemovecallback 将为您的回调提供以下参数:
但我的回调函数的 index 参数中总是得到 0。有人可以告诉我怎么了?代码如下:
【问题讨论】:
标签: knockout.js
看起来像是淘汰赛 3.5.0 中的一个错误。相同的代码适用于 3.4.2 版本,请看下面的缩写示例:
function RootViewModel(){
var self = this;
self.Items = ko.observableArray([1, 2, 3, 4, 5]);
self.BeforeRemove = function(element, ind, item) {
console.log("Index: " + ind);
$(element).remove();
};
};
ko.applyBindings(new RootViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div class="container p-5">
<button data-bind="click: function () { Items.push(Items().length + 1) }">Add</button>
<ul data-bind="foreach: { data: Items, beforeRemove: BeforeRemove }">
<li data-bind="text: $data, click: function (i) { $root.Items.remove(i) }"></li>
</ul>
</div>
【讨论】: