Rendering behoben Versprechen Wert in Ember LENKER Vorlage
Ist es ein guter Weg, um zu Rendern, das Ergebnis einer Verheißung in ein LENKER Vorlage?
Ich habe zum Beispiel das folgende Modell:
App.TopicItem = DS.Model.extend({
topic: DS.belongsTo('topic'),
paddedPosition: function() {
return this.get('topic.course.lessons').
then(function(lessons) {
return lessons.indexOf(topicItem);
}).
then(function(index){
var position = index;
if (position < 0) {
return;
}
position = position + 1;
return (position < 10 ? $.rjust(position, 2, '0') : position.toString());
});
}.property('topic.course.lessons')
});
Und ich möchte zum Rendern der Wert der position in den LENKER Vorlage wie diese:
{{topicItem.paddedPosition}}
Ist es ein guter Weg, um dies zu erreichen?
- sieht aus wie Sie benötigen, um zu warten, bis die
paddedPosition
zurück, so etwas wietopicItem.get('paddedPosition').then(function() {Handlebars.compile();});
mir nicht sicher über die Glut, aber das ist der Allgemeine Ansatz 🙂 - Nicht sicher, über das warten für paddedPosition so viel wie versuchen, herauszufinden, ob Ember.LENKER löst ein Versprechen automatisch.
InformationsquelleAutor alvincrespo | 2013-12-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie haben die Eigenschaft, träge zu sich, so etwas wie:
Wenn es zum ersten mal aufgerufen wird, es wird kick-off der Berechnung ebenfalls zu jeder Zeit den Unterricht ändern, dann werde es sich als das Ergebnis der Berechnung, sobald es fertig ist.
Dies funktioniert, da eine berechnete Eigenschaft wird aufgerufen, sowohl über get-und set-können Sie unterscheiden zwischen den beiden, indem Sie die Anzahl der Argumente - 1 für bekommen, mehr als 1 set (früher 2, jetzt 3, so dass der beste Weg, um erkennen ist > 1). Mehr auf, dass in den docs.
Was auch immer wieder von einer berechneten Eigenschaft (entweder get oder set) wird zwischengespeichert, bis die von Ihr abhängigen Eigenschaften ändern - in diesem Fall
topic.course.lessons
.In dem obigen Beispiel, wenn der erste
get
wir kick-off der Berechnung und zurücknull
. Dies ist nun zwischengespeichert, da der Wert der Eigenschaft, wenn nichts anderes fordert, diese Eigenschaft vor dem Versprechen gelöst hat, dann werde zurückkehrennull
.Einmal das Versprechen aufgelöst wird, nennen wir
set
auf dem gleichen Grundstück mit dem berechneten Wert. Diese können wir nur zurückkehren in den Set-und es ist nun zwischengespeichert, da der Wert der Eigenschaft.Bis die abhängigen Eigenschaften ändern (
topic.course.lessons
), oder ein neuer Wertset
dann der zwischengespeicherte Wert zurückgegeben wird, ist Sie von der Unterkunft aus.Dass scheint, wie ein unerwartetes Verhalten.
Da ist ein Fehler gefüllt für das problem: https://github.com/emberjs/ember.js/issues/11046