我从ember.js开始,在ember.js文档(http://docs.emberjs.com/symbols/Handlebars.helpers.html#.collection)中试用了一些东西时遇到了麻烦。
此应用程序代码:
App = Ember.Application.create()
App.items = [
Ember.Object.create({name: 'Dave'}),
Ember.Object.create({name: 'Mary'}),
Ember.Object.create({name: 'Sara'})
]
使用此模板代码:
{{#collection contentBinding="App.items"}}
Hi {{content.name}}
{{/collection}}
结果如下:
<div id="ember122" class="ember-view">
<div id="ember142" class="ember-view">
<div id="ember149" class="ember-view"> Hi
<script id="metamorph-0-start" type="text/x-placeholder">
</script>
<script id="metamorph-0-end" type="text/x-placeholder">
</script>
</div>
<div id="ember150" class="ember-view"> Hi
<script id="metamorph-1-start" type="text/x-placeholder">
</script>
<script id="metamorph-1-end" type="text/x-placeholder">
</script>
</div>
<div id="ember151" class="ember-view"> Hi
<script id="metamorph-2-start" type="text/x-placeholder">
</script>
<script id="metamorph-2-end" type="text/x-placeholder">
</script>
</div>
</div>
</div>
因此,它有效地遍历对象,但无法返回每个对象的名称值。为什么是这样?这些文档可能已经过时了吗?有没有更好的方法来实现所需的结果(迭代项目)?谢谢你的回答。
答案 0 :(得分:2)
我认为您使用的是ember-latest或1.0-pre,在这种情况下,您必须在content.name
前加上view
。从1.0开始,上下文的检索发生了变化。请参阅:Ember.js: Handlebars displays nothing了解更多内容。
有人说,文件不是最新的。你可以用修复程序发布一个拉取请求吗?
答案 1 :(得分:0)
此示例效果很好:http://jsfiddle.net/secretlm/qD6az/3/
希望这有帮助。