私のアプリには、タイプの汎用テキスト フィールドがありますEm.TextField
。
App.DetailTextField = Em.TextField.extend({
attributeBindings: ['required', 'readonly', 'name']
});
私のテンプレートでは、DetailTextField を使用してデータを表示し、属性を指定して、「編集」または「表示」のいずれかのクラスで表示します。
{{view App.DetailTextField viewName="tbSurname" placeholder="surname"
valueBinding="surname" required="required" classNameBindings="isEditing:editing:viewing" readonlyBinding='getReadOnlyState'}}
これは正常に機能しますが、これらのフィールドがいくつかあり、それらはすべて同じ部分を持っています: classNameBindings="isEditing:editing:viewing" readonlyBinding='getReadOnlyState'
. テンプレート ビューの現在の objectController から取得されますisEditing
。getReadOnlyState
DetailTextField ビューのすべてのインスタンスに明示的に入力する必要がないように、 classNameBindings
andreadonlyBinding
をクラス定義に入れる方法はありますか? DetailTextField
つまり、DetailTextField は現在のコンテキストを取得できます - 例:
App.DetailTextField = Em.TextField.extend({
attributeBindings: ['required', 'readonly', 'name'],
classNameBindings: "this.view.get('isEditing'):editing:viewing"
});
コントローラーから値を取得するクラス定義内に関数を作成することはできisEditing
ますが、activeController / this.controller を参照する方法がわからないという同じ問題が依然としてあります。
何かご意見は?