Question

J'ai un modèle Ember.js qui n'est essentiellement qu'un ID, un titre, un corps et des balises, où chaque balise a un ID et un titre. Voici le JSON que je nourris en Ember de Rails:

{"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"}
 }

Question 1: Comment puis-je modéliser les balises du modèle Ember.js? S'il y a juste un champ "Tags" qui contient un tableau JS de balises, ou qu'il y ait un champ pour chaque balise, donc il y aurait Tag1, Tag2, Tag3, etc., où chaque champ a un tableau d'ID et Titre?

Question 2: Dans mes modèles de guidon, comment puis-je utiliser les balises pour lier chaque balise vers /tags/{{tag.id}}? Je ne peux pas simplement utiliser <a href="/tags/{{tag.id}}"></a> Puisque vous ne pouvez pas intégrer des valeurs de guidon dans un attribut comme celui-ci, et je ne peux pas utiliser {{bindattr}} car vous ne pouvez pas concaténer les chaînes (comme / tags /) à la valeur. Cela me laisse avec une propriété calculée (qui est la "bonne voie", selon ce) pour chaque balise (donc la propriété calculée "tagurl" reviendrait "/tag/" + tag.id), mais je ne sais pas comment procéder parce que je ne sais pas comment les balises doivent être stockées (question 1 ci-dessus).

Était-ce utile?

La solution

Étendre une vue dans votre code:

App.tagView = Em.View.extend
     templateName: "tTagView"
     tagURL: (->
          '/tag/" + @get('id')
     ).property()

Dans votre guidon, faites cela

 {{#each tags}}
      {{view App.tagView content=this}}
 {{/each}}

Vous aurez besoin d'un modèle

 <script id="tTagView" data-template-name='tTagView' type="text/x-handlebars">
      <a {{bindAttr href="tagURL"}}>{{Name}}</a>
 </script>

Voici tout ce qui fonctionne dans un violon:http://jsfiddle.net/herty/12/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top