在我的应用程序中,我有一个类型的通用文本字段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'
. isEditing
并getReadOnlyState
从模板视图的当前 objectController 中检索。
有没有办法将classNameBindings
andreadonlyBinding
放入DetailTextField
类定义中,这样就不需要在 DetailTextField 视图的每个实例中显式地键入它?也就是说, DetailTextField 是否可以获取当前上下文 - 例如:
App.DetailTextField = Em.TextField.extend({
attributeBindings: ['required', 'readonly', 'name'],
classNameBindings: "this.view.get('isEditing'):editing:viewing"
});
我可以isEditing
在类定义中创建一个从控制器检索值的函数,但我仍然有同样的问题,因为我不知道如何引用 activeController / this.controller。
有什么想法吗?