コントローラーで監視されているプロパティをコンポーネントに渡すアプリケーションで作業していますが、未定義の値を取得しています。私はember 1.6を使用しています
コンポーネントの呼び出し方法:-
{{range-slider min="0" max="100" step="1" value=currentVal}}
コンポーネントの実装は:-
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は、コントローラーで監視されるプロパティです。スライダーをスライドするたびに、currentVal がコンポーネントにバインドされているため変更されます。デフォルト値は 50 です。コントローラーは正常に動作しています。
コントローラー部分は次のとおりです。
currentVal:50,
currentValChanged:function(){
console.log("currentVal changed");
}.observes('currentVal'),
コンポーネントでは、最小値を正しく取得していますが、値を取得していません。それは未定義になっています。
コンポーネントでプロパティ値を取得するには?
アップデート
コンポーネントで次のメソッドを使用して変数を取得できます:-
1) 変数を静的な値でコンポーネントに直接渡すと、機能します。たとえば、range-slider コンポーネントで渡される最大値。
2)コントローラーで定義されている静的変数を渡す場合、たとえばコントローラーで
dummyValue:2345,
コンポーネントにダミー値を渡せば、コンポーネント部分で読めるようになります。
しかし、プロパティが計算されたプロパティである場合、それは機能しません。