首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ember.js模型中处理标记

如何在ember.js模型中处理标记
EN

Stack Overflow用户
提问于 2012-02-21 23:53:38
回答 1查看 1.1K关注 0票数 2

我有一个Ember.js模型,它基本上只有一个ID、一个标题、一个主体和标签,其中每个标签都有一个ID和一个标题。这是我从Rails提供给Ember的JSON:

代码语言:javascript
运行
复制
{"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)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-22 00:09:29

在代码中扩展视图:

代码语言:javascript
运行
复制
App.tagView = Em.View.extend
     templateName: "tTagView"
     tagURL: (->
          '/tag/" + @get('id')
     ).property()

在你的车把上这样做

代码语言:javascript
运行
复制
 {{#each tags}}
      {{view App.tagView content=this}}
 {{/each}}

您需要一个模板

代码语言:javascript
运行
复制
 <script id="tTagView" data-template-name='tTagView' type="text/x-handlebars">
      <a {{bindAttr href="tagURL"}}>{{Name}}</a>
 </script>

这就是一切都能顺利进行的地方:http://jsfiddle.net/herTY/12/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9380622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档