2016-07-05 7 views
0

Eine Route /numbers hat das JavaScript:Rendering Array Ember mit {{jedem}}

// app/routes/numbers.js 
// ... 
numbers: [1,2,3,4,5], 
// ... 

und in der Vorlage Route:

<!-- app/templates/numbers.hbs --> 
{{#each numbers as |n|}} 
    <p>{{n}}</p> 
{{/each}} 

Wenn ich sehe die /numbers Strecke, nichts wird innerhalb des {{each}} Helfer gerendert. Warum nicht?

+0

Beachten Sie, dass alle Variablen, auf die in Vorlagen zugegriffen werden soll, in Controllern definiert werden sollten. –

Antwort

1

Sie können nicht auf Eigenschaften zugreifen, die Sie in der Route in der Vorlage festgelegt haben. Wenn Sie auf das Nummern-Array in der Vorlage zugreifen möchten, müssen Sie es in der Steuerung unter Verwendung von setupController festlegen.

Die "Ember way" Daten-Vorlagen passieren ist, die Daten in der Route der model Haken zu bekommen, ist es dann am Regler in setupController

In Ihrer Route, dies zu tun:

model: function(params, transition) { 
    return this.get('numbers'); 
}, 

setupController: function(controller, model) { 
    controller.set('model', model); 
} 

dann in der Vorlage, anstatt die Zahlen Array von zuzugreifen, verwenden model

{{#each model as |n|}} 
    <p>{{n}}</p> 
{{/each}} 

für weitere Informationen lesen Sie: 0.123.

+1

setupController ist nicht erforderlich. Wenn Sie jedoch eine andere Eigenschaft für den Controller einrichten möchten. du benutzt es. 'controller.set (" Nummer ", Modell);' – heat