ember.jsモデルでタグを処理する方法
-
28-10-2019 - |
質問
私は、基本的には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/
所属していません StackOverflow