モデルのプロパティを監視しているコンポーネントがあり、モデルはコントローラーのセットアップでコントローラーのプロパティ「モデル」としてコントローラーに供給されます。モデルには、年齢、給与、ランクのプロパティがあります。コンポーネントのプロパティは、ユーザーが入力する必要があります。
コンポーネントは次のように呼び出されます。
{{ui-slider prop="age"}}
また
{{ui-slider prop="salary"}}
これは完全なコンポーネントではありませんが、私の問題を説明しています。コンポーネントは次のとおりです。
App.UiSliderComponent = Ember.Component.extend({
prop:function(){
return this.get('prop');
}.property('prop'),
modelPropertyObserver:function(){
console.log("property is "+this.get('targetObject.model').get(this.get('prop'));
}.observes('targetObject.model.'+this.get('prop')),
didInsertElement:function(){
console.log("Element inserted");
}
})
これは機能していません。そのようなプロパティを観察すると .observes('targetObject.model.age')
、正常に動作します。
でも今は映ってるcori_component.js:29 Uncaught TypeError: this.get is not a function
私も試し.observes('targetObject.model.'+this.prop)
ましたが、エラーは表示されませんが、オブザーバーは機能しません。
「prop」プロパティをオブザーバーに連結する方法は?
または、コンポーネント内の文字列を連結してオブザーバーに置き換える方法はありますか。