Sir*_*sen 5 template-engine javascript-objects backbone.js handlebars.js
我正在使用带有嵌套模型的backbone.js.这个想法是自包含作者的所有属性,以及在帖子和评论上重复使用作者模型.至少在理论上这是有意义的我会想.
但是,设置这样的东西我会遇到如何用Handlebars检索不同值的混乱.把手不喜欢从我读过的东西中传递物品.我可以轻松地检索一个状态{{#each}},{{status}}但自然会做{{author.name}}不起作用.
我已经看过使用Helper,但是你可以看到我有嵌套在里面的注释,这将有另一个作者嵌套在里面.我不相信帮助者内部的帮助者会工作.
这是从Chrome控制台中提取的示例对象.
Object {items: Array[2]}
+items: Array[2]
+0: Object
+author: child
_changing: false
_pending: false
_previousAttributes: Object
+attributes: Object
name: "Amy Pond"
profileImage: "Amy.jpg"
__proto__: Object
changed: Object
cid: "c0"
__proto__: Surrogate
comments: child
id: "50f5f5d4014e045f000001"
status: "1- This is a sample message."
__proto__: Object
+1: Object
author: child
comments: child
id: "50f5f5d4014e045f000002"
status: "2- This is another sample message."
__proto__: Object
length: 2
__proto__: Array[0]
__proto__: Object
Run Code Online (Sandbox Code Playgroud)
我在组织中是不正确的,还是有更好的方法来处理多维数据?或者Handlebars有没有一个很好的方法来获得每个值?
如果有一个更强大的模板引擎,我打开选项.
似乎问题是您将Backbone模型直接放入模板中,但您必须先将其转换为JSON对象model.toJSON().或者您尝试访问author.attributes.name.
来自文档:
Handlebars还支持嵌套路径,从而可以查找嵌套在当前上下文下的属性.
<div class="entry">
<h1>{{title}}</h1>
<h2>By {{author.name}}</h2>
<div class="body">
{{body}}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
该模板适用于此上下文
var context = {
title: "My First Blog Post!",
author: {
id: 47,
name: "Yehuda Katz"
},
body: "My first post. Wheeeee!"
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6549 次 |
| 最近记录: |