1

コントローラーで監視されているプロパティをコンポーネントに渡すアプリケーションで作業していますが、未定義の値を取得しています。私は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,

コンポーネントにダミー値を渡せば、コンポーネント部分で読めるようになります。

しかし、プロパティが計算されたプロパティである場合、それは機能しません。

4

3 に答える 3

1

あなたのコントローラーが未定義の値をコントローラー部分の currentVal プロパティに設定しているとは思えません。動いているツイドルを見てください..

于 2016-05-12T05:59:56.037 に答える
0

currentValばかげて聞こえないように願っていますが、 と の間にスペースを入れようとしました}}か? 何人かのヘルパーと一緒に真剣に働いてくれました。

このような:

{{range-slider min="0" max="100" step="1" value=currentVal }}

本当に、 ember-xselect でそれを行う必要があります。そうしないと、正しく動作しません。

于 2016-05-04T20:14:39.107 に答える
0

その場合value=currentValは、アクセスする必要がありますthis.get("value")。でアクセスしたい場合はthis.get("currentValue")、その名前で渡す必要があります: currentValue= currentVal

于 2016-05-04T10:28:34.920 に答える