如何处理 ember.js 模型中的标签
Posted
技术标签:
【中文标题】如何处理 ember.js 模型中的标签【英文标题】:How to deal with tags in an ember.js model 【发布时间】:2012-02-21 15:53:37 【问题描述】:我有一个 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 值,而且我不能使用 bindAttr 因为您不能将字符串(如 /tags/)连接到值。这给我留下了每个标签的计算属性(这是“正确的方法”,according to this)(所以计算属性“tagurl”只会返回"/tag/" + tag.id
),但我不知道该怎么做,因为我不确定应该如何存储标签(上面的问题 1)。
【问题讨论】:
任何提示:***.com/questions/44259423/… ? 【参考方案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/
【讨论】:
那么标签应该如何存储呢?将它们存储在单独的模型中并关联它们是否有意义? 你拥有它们的方式很好(在一个数组中)。 任何提示:***.com/questions/44259423/…?以上是关于如何处理 ember.js 模型中的标签的主要内容,如果未能解决你的问题,请参考以下文章
使用 Ember.js 数据 RESTAdapter 时应该如何处理错误?
Ember.js - 将 ember-cli-mirage 用于假模型时未找到模型