我在一个主干项目中使用Rivets.js进行两个双向数据绑定,并希望实现迭代绑定。文档表明迭代绑定是可能的,但是没有可用的示例。我使用一个简单的Rails API向客户端发送JSON,并希望对内容进行迭代。有人成功地在Rivets.js中实现了这个功能吗?
参考资料:使用Backbone.js和Rivets.js的简单示例
jsFiddle这里:http://jsfiddle.net/rhodee/3qcYQ/1/
来自Rivets.js站点
迭代绑定 尽管Rivets.js中可能包含每个项的绑定例程,但您可以使用数据-html绑定以及一组临时格式化程序来对集合进行排序和迭代呈现(以及其他很酷的事情)。
发布于 2012-08-11 02:07:57
在0.3.2中,现在正是出于这个目的,有一个数据-每个-[项目]绑定。
<ul>
<li data-each-todo="list.todos">
<input type="checkbox" data-checked="todo.done">
<span data-text="todo.summary"></span>
</li>
<ul>对于早期版本的Rivets.js,您所提到的工作是用格式化程序实现迭代呈现,例如,您可以使用model.items | itemList进行data-html绑定,其中itemList格式化程序只是在数组上循环并返回一些呈现出来的HTML。
rivets.formatters.itemList = (array) ->
("<li>#{item.name}</li>" for item in array).join ''发布于 2012-10-13 19:30:34
对这一问题的回答是:
从0.3.2开始,就有了一个数据-每个项绑定来实现这个目的。
请注意,您需要具体地修改铆钉适配器以使用主干集合,因为Rivets.js站点上的开箱即用示例不会与此用例一起运行。
在你的rivets.configure({ adapter: ... })中你需要这样的东西
...
read: function( obj, keypath ) {
return obj instanceof Backbone.Collection
? obj["models"]
: obj.get(keypath)
}和JS Fiddle:http://jsfiddle.net/tigertim719/fwhuf/70/
为了获得额外的积分,嵌入在模型中的集合将需要在适配器中进行额外的处理。
要获得更多信息,请查看这篇关于Rivets.js Github问题的文章:
发布于 2012-08-07 23:12:56
UnderscoreJS集成在主干中,因此您可以使用它的本地方法,如.each()或使用集成主干集下划线方法。
这就是你要找的吗?
https://stackoverflow.com/questions/11854126
复制相似问题