我有一个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标记数组的" tags“字段,还是每个标记都有一个字段,所以应该有tag1、tag2、tag3等,其中每个字段都有一个ID和title数组?
问题2:在我的Handlebar模板中,如何使用标记将每个标记链接到标签我不能只使用<a href="/tags/{{tag.id}}"></a>
,因为您不能在这样的属性中嵌入Handlebars值,我也不能使用{{bindAttr}},因为您不能将字符串(如/ /tags/{{tag.id}}?
/)连接到值。这就给我留下了每个标签的计算属性(这是“正确的方式”,according to this) (所以计算属性"tagurl“只会返回"/tag/" + tag.id
),但是我不确定该怎么做,因为我不确定标签应该如何存储(上面的问题1)。
发布于 2012-02-22 00:09:29
在代码中扩展视图:
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/
https://stackoverflow.com/questions/9380622
复制相似问题