我有一个用于将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
容器中元素的布局由masonry插件控制,为了进行手动绝对定位,需要调用$container.masonry( 'prepended', elements )
传递元素集合。
我在可观察集合'.push
发生的地方处于控制之中,但我不知道如何从模板中新创建的div获取jQuery元素以传递给砌体插件的jQuery调用。
如何通过可观察数组添加基于敲除元素的布局更新布局?
答案 0 :(得分:1)
你可以使用模板绑定的afterAdd或beforeRemove函数,我建议不要使用它,因为你从ViewModel获得了对DOM的依赖。
最好创建一个处理砌体和KO之间交互的自定义绑定