2

我有一个用于将 div 列表绑定到可观察数组的淘汰模板绑定:

<div class="menu-instance-entries js-masonry" data-masonry-options='{ "gutter": 20, "itemSelector": ".menu-entry" }' data-bind="template: { name: 'menu-entries-template', foreach: MenuEntries }"></div>

MenuEntries是一个可观察数组,push它通过绑定到视图模型函数的点击处理程序将新元素“ed”放入其中。

容器中元素的布局.menu-instance-entries砌体插件控制,为了进行手动绝对定位,需要调用$container.masonry( 'prepended', elements )传递元素集合。

我控制了可观察集合的.push发生位置,但我不知道如何通过模板从新创建的 div 中获取 jQuery 元素,以将 jQuery 调用传递给 masonry 插件。

我应该怎么做才能在通过可观察数组添加的淘汰元素上更新布局?

4

1 回答 1

1

您可以使用模板绑定的 afterAdd 或 beforeRemove 函数,但我建议不要这样做,因为您会从 ViewModel 获得对 DOM 的依赖关系。

最好创建一个自定义绑定来处理砌体和 KO 之间的交互

于 2013-06-27T08:13:25.983 回答