我应该将ember.js用于项目。我正在将json转换为HTML视图。 json看起来像这样:
{
"title": "Some H1 title",
"children": [
{"title": "Some H2 title",
"children": .....
}
]
}
所以结果应该是这样的
建议使用emberjs的方法是什么?将整个json加载到数据模型中并从那里开始?或者只是将物体放在车把上? (顺便说一下,需要一些基本的if else逻辑,因此最后一个选项可能不是最好的(例如需要更多代码))。
答案 0 :(得分:2)
如果json中的数据在应用程序的数据模型中有一些含义,那么您应该将它放在ember对象的结构中并将它们分配给控制器的属性。如果您只需要显示json数据并且在应用程序的数据模型中没有任何意义,那么您可以直接将其作为属性分配给视图或控制器。
在所有情况下,您都需要一个把手模板,该模板将显示存储在这些属性中的数据。
例如,如果您的json数据由字符串为title
的对象和与children
相同的对象的数组组成,并且您希望显示所有子项的所有标题,而不管您的深度如何可以做点什么,
http://emberjs.jsbin.com/UgaVAvIZ/1/edit
<强> HBS 强>
<script type="text/x-handlebars">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h1>{{title}}</h1>
{{partial "childrenPartial"}}
</script>
<script type="text/x-handlebars" data-template-name="_childrenPartial">
{{#each child in children}}
<h2>{{child.title}}</h2>
{{#with child.children}}
{{partial "childrenPartial"}}
{{/with}}
{{/each}}
</script>
<强> JS 强>
App = Ember.Application.create();
App.Router.map(function() {
// put your routes here
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return {"title": "Some H1 title","children": [{"title": "Some H2 title","children": []}]};
}
});
请注意,使用如图所示的部分仅是许多其他方法中的一种。在这种方法中,json数据已被指定为特定路径的模型,并借助于部分显示所需数据的相应视图。