Domanda

Ho un modello Ember.js che è fondamentalmente solo un ID, un titolo, un corpo e tag, in cui ogni tag ha un ID e un titolo. Ecco il json che sto nutrendo Ember dai binari:

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

Domanda 1: come posso modellare i tag nel modello Ember.js? Dovrebbe esserci solo un campo "tag" che contiene una gamma JS di tag, o dovrebbe esserci un campo per ogni tag, quindi ci sarebbe tag1, tag2, tag3, ecc., In cui ogni campo ha una serie di ID e titolo?

Domanda 2: nei miei modelli di manubrio, come posso usare i tag per collegare ogni tag a /tags/{{tag.id}}? Non posso semplicemente usare <a href="/tags/{{tag.id}}"></a> Dal momento che non è possibile incorporare i valori del manubrio in un attributo del genere e non posso usare {{{BindAttr}} poiché non è possibile concaterare stringhe (mi piace /tag /) al valore. Questo mi lascia con una proprietà calcolata (che è il "modo giusto", secondo questo) per ogni tag (quindi la proprietà calcolata "tagurl" sarebbe solo restituito "/tag/" + tag.id), ma non sono sicuro di come farlo perché non sono sicuro di come dovrebbero essere archiviati i tag (domanda 1 sopra).

È stato utile?

Soluzione

Estendi una vista nel tuo codice:

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

Nel tuo manubrio fai questo

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

Avrai bisogno di un modello

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

Ecco tutto che funziona in un violino:http://jsfiddle.net/herty/12/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top