将knockoutJS数据绑定模板插入容器后刷新砌体布局

时间:2013-06-26 22:33:55

标签: jquery knockout.js jquery-masonry

我有一个用于将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调用。

如何通过可观察数组添加基于敲除元素的布局更新布局?

1 个答案:

答案 0 :(得分:1)

你可以使用模板绑定的afterAdd或beforeRemove函数,我建议不要使用它,因为你从ViewModel获得了对DOM的依赖。

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