我有一个Ember.js模型,它基本上只是一个ID,一个标题,一个正文和标签,每个标签都有一个ID和一个标题。这是我从Rails喂养Ember的JSON:
{"created_at":"2012-02-19T03:28:26Z",
"body":"Example body",
"id":1,
"title":"Example title",
"updated_at":"2012-02-19T03:28:26Z"
"tags" :
{"id":1,
"name":"retweet"},
{"id":2,
"name":"twitter"},
{"id":3,
"name":"social"}
}
问题1:如何在Ember.js模型中建模?如果只有一个“标签”字段包含JS标签数组,或者每个标签应该有一个字段,那么就会有tag1,tag2,tag3等,其中每个字段都有一个ID数组和标题?
问题2:在我的Handlebars模板中,如何使用标记将每个标记链接到/tags/{{tag.id}}?
我不能只使用<a href="/tags/{{tag.id}}"></a>
,因为您无法在属性中嵌入Handlebars值因为你不能将字符串(比如/ tags /)连接到值,所以我不能使用{{bindAttr}}。这给我留下了每个标签的计算属性(这是“正确的方法”,according to this)(因此计算属性“tagurl”只返回"/tag/" + tag.id
),但我不知道如何这样做是因为我不确定应该如何存储标签(上面的问题1)。
答案 0 :(得分:1)
在代码中扩展视图:
App.tagView = Em.View.extend
templateName: "tTagView"
tagURL: (->
'/tag/" + @get('id')
).property()
在你的把手中做这个
{{#each tags}}
{{view App.tagView content=this}}
{{/each}}
您需要一个模板
<script id="tTagView" data-template-name='tTagView' type="text/x-handlebars">
<a {{bindAttr href="tagURL"}}>{{Name}}</a>
</script>
以下是小提琴中的所有内容: http://jsfiddle.net/herTY/12/