我在用着铆钉.js http://rivetsjs.com/对于 Backbone 项目中的两个双向数据绑定,并且希望实现迭代绑定。文档表明迭代绑定是可能的,但没有可用的示例。我正在使用一个简单的 Rails API 将 JSON 发送到客户端,并希望迭代内容。有没有人成功地让这个功能在 Rivets.js 中工作?
参考资料:使用 Backbone.js 和 Rivets.js 的简单示例 https://stackoverflow.com/questions/11719914/simple-example-using-backbone-js-and-rivets-js
jsFiddle在这里:http://jsfiddle.net/rhodee/3qcYQ/1/ http://jsfiddle.net/rhodee/3qcYQ/1/
来自 Rivets.js 网站
迭代绑定
尽管 Rivets.js 中可能会包含每个项目的绑定例程,但您
可以使用 data-html 绑定以及一组格式化程序来完成
集合的排序和迭代渲染(以及其他很酷的事情)。
<ul data-html="model.tags | sort | tagList"></ul>
扩展这个答案:
从 0.3.2 开始,现在有一个 data-each-[item] 绑定正是用于此目的。
请注意,您需要专门修改您的铆钉adapter使用 Backbone Collection,因为 Rivets.js 网站上的开箱即用示例不适用于此用例。
你需要在你的rivets.configure({ adapter: ... })
:
...
read: function( obj, keypath ) {
return obj instanceof Backbone.Collection
? obj["models"]
: obj.get(keypath)
}
还有 JS 小提琴:http://jsfiddle.net/tigertim719/fwhuf/70/ http://jsfiddle.net/tigertim719/fwhuf/70/
为了获得奖励积分,嵌入模型中的集合将需要在适配器中进行额外的处理。
有关更多信息,请查看有关 Rivets.js Github 问题的这篇文章:
使用 data-each- 绑定绑定到 Backbone.Collection https://github.com/mikeric/rivets/issues/57
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)