Ich arbeite an einer Anwendung, wo ich eine Eigenschaft übergeben, die in Controller beobachtet wird, um die Komponente, aber ich bekomme undefined Wert. Ich bin ember mit 1,6Wie übergeben Controller beobachtete Eigenschaft in Komponente
Wie ich Komponente nennen: -
{{range-slider min="0" max="100" step="1" value=currentVal}}
Komponente Implementierung ist: -
App.RangeSliderComponent = Ember.Component.extend({
tagName:'',
currentValue:function(){
return this.get('value');
}.property('value'),
minValue:function(){
return this.get('min');
}.property('min'),
didInsertElement:function(){
console.log("component with currentValue="+this.get("currentValue")+" minValue="+this.get('minValue'));
}
})
currentVal als Komponente Wert ist eine Eigenschaft, die beobachtet wird im Controller. Wenn ich den Schieberegler verschiebe, wird der aktuelle Wert geändert, da er mit der Komponente verbunden ist. Der Standardwert ist 50. Der Controller funktioniert einwandfrei.
Der Controller Teil ist: -
currentVal:50,
currentValChanged:function(){
console.log("currentVal changed");
}.observes('currentVal'),
In Komponente, erhalte ich den min Wert richtig, aber nicht immer den Wert. Es kommt undefiniert.
So erhalten Sie die Eigenschaft Wert in Komponente?
aktualisiert
Ich bin in der Lage Variable zu erhalten, indem Methoden in der Komponente folgenden: -
1) Wenn ich eine Variable direkt an Komponente mit statischem Wert übergebe, es funktioniert. z. B. max Wert in Bereich-Slider-Komponente übergeben.
2) Wenn ich eine statische Variable überlasse, die im Controller definiert ist, z. Controller in
dummyValue:2345,
Wenn I Blindwert Komponente zu übergeben, kann ich es in Komponententeil lesen.
Aber wenn die Eigenschaft Eigenschaft berechnet wird dann funktioniert es nicht.
Also ist 'currentValue' etwas anderes als ein Alias, den Sie einfacher mit' currentValue: Ember.computed.alias ('value') 'definieren können? Ob Ihr Controller eine Eigenschaft beobachtet oder nicht, sollte nichts mit irgendetwas zu tun haben. –
es funktioniert nicht einmal mit computed.alias() –
Nur eine Vermutung, aber es könnte ein Problem mit dem Eigenschaftsnamen "Wert" sein, versuchen Sie, es in "val" zu ändern. –