首页 > 解决方案 > Knockout.Js 中的多个 afterAdd 调用

问题描述

我最近开始使用 Knockout.js 库。我有一个项目网格,我正在尝试在 foreach 中使用 afterAdd 属性。问题是它调用了 afterAdd 处理程序 3 次而不是 1 次。是有什么问题还是它是 knockout.js 的正确行为(为什么?)

Console.log 映像

这是 HTML 代码片段

<tbody id="body_table" data-bind='foreach: { data: items, afterAdd: addSelect2}'>

这是淘汰视图模型代码片段

self.addSelect2 = function(element, index, data) {
    console.log(element);
}

标签: javascripthtmlmvvmknockout.js

解决方案


是的,这是预期的行为,因为它是为项目中的每个新元素调用的。该文档指出,这afterAdd专门用于“触发与列表更改相关的动画”,并且“仅在将新条目添加到您的数组时才调用”。

在这里阅读更多。

似乎您需要为您的要求创建自定义绑定。


推荐阅读