質問

私は、基本的にはID、タイトル、ボディ、タグのみであるEmber.jsモデルを持っています。各タグにはIDとタイトルがあります。これが私がレールからエンバーを与えている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のタグ配列を含む「タグ」フィールドが1つだけある場合、または各タグに1つのフィールドがある場合、各フィールドにはIDの配列があり、tag1、tag2、tag3などがあります。題名?

質問2:ハンドルバーのテンプレートでは、タグを使用して各タグをリンクするにはどうすればよいですか /tags/{{tag.id}}? 私はただ使用できません <a href="/tags/{{tag.id}}"></a> そのような属性にハンドルバーの値を埋め込むことができないため、{{bindattr}}を使用することはできません。それは私に計算されたプロパティを残します(これは「正しい方法」であり、 これによれば)各タグに対して(したがって、計算されたプロパティ「Tagurl」が返されるだけです "/tag/" + tag.id)、しかし、タグを保存する方法がわからないので、これを行う方法がわかりません(上記の質問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/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top