2015-02-25 5 views
5

Ich möchte Gebrauch versuchen:Wie setze ich itemController in jedem als (ember 1.11 beta3)?

{{#each content as |product index|}} 
    {{index}} 
{{/each}} 

Aber meine App hat die itemContoller, wie folgt aus:

{{#each product in content itemController='product'}} 

Wenn ich diesen Satz:

{{#each content as |product index| itemController='product'}} 

Es funktioniert nicht! Ich fand alle Glutführer und fand die Antwort nicht.

Jede Hilfe bitte.

Antwort

7

Controller (Object, Array und itemController) gehen weg. Die neue Art, Dinge zu tun, besteht darin, eine Komponente zu verwenden.

Anstatt also Ihren Artikel Controller, würden Sie eine Komponente definieren:

App.MyProductComponent = Ember.Component.extend({ 
    myIndex: function(){ 
    return this.get('passedIndex') + 1; 
    }.property('passedIndex') 
}); 

Dann in Ihrem #each Helfer Sie es benutzen würde, wie folgt:

<script type="text/x-handlebars" data-template-name="index"> 
    <ul> 
    {{#each model as |product index|}} 
     {{ my-product passedIndex=index product=product }} 
    {{/each}} 
    </ul> 
</script> 

Arbeitslösung here

Siehe den folgenden Link und machen Sie eine Suche nach itemController - https://github.com/emberjs/rfcs/pull/15

+0

Kühl. Vielen Dank – JeskTop

+1

Vergiss nicht, 'tagName: 'li'' in der Komponente zu setzen. Andernfalls wird ein Div verwendet, was Ihre Liste durcheinander bringen könnte. –

0

Wirklich? Ich meine, es gibt viele Fälle, in denen ich denke, dass das Erstellen einer Komponente zum Anzeigen von berechneten Werten basierend auf den Eigenschaften des Controllermodells zu viel wäre ..... Was ist, wenn ich nur einen String möchte (ich nicht brauche die <div> Sache, die von ember für jede Komponente hinzugefügt wird).

Helfer dann erstellen? Beeindruckend.

0

@ user3443096,

Wenn Sie nicht div-Tags wie von Ember Verwendung tagName: "" Eigenschaft wie folgt eingefügt haben:

App.InvoiceItemsComponent = Ember.Component.extend({ 
tagName: '' 
}); 

Nun divs um Ihre Komponente nicht eingefügt werden.

Verwandte Themen