ember.view オブジェクトの子オブジェクトにバインドの問題があります。コードは次のとおりです。
-- Ember.TextField から拡張された Textbox クラス
App.TextBox = Ember.TextField.extend({
attributeBindings:['placeholder', 'autocorrect','autocapitalize'],
value:null,
isInvalid:true,
validate:function(){
this.set('isInvalid', false);
return false;
},
focusOut:function(event){
this.validate();
}});
--- App.Textbox を使用するビュー
App.ViewTextBox = Ember.View.extend({
name:"viewName",
label:"View Label",
input: App.TextBox.extend({
placeholder:function(){
return this.get('parentView').get('label');
}.property('label').cacheable()
})});
--バインディング付きハンドルバー
{{#view App.ViewTextBox}}
{{label}}<br/>
{{#view input valueBinding="parentView.value"}}
<div {{bindAttr class="isInvalid"}}></div>
{{/view}}{{/view}}
問題は次のとおりです。1) ビューの最初のレンダリングの後、クラスは適切に設定されますが、onFocusOut 呼び出しによる isInvalid 値へのその後の変更は、DOM 内のクラスを変更しません。アイデア?