inc*_*nez 4 javascript data-binding extjs mvvm extjs5
我对允许绑定哪些配置值和哪些不被绑定感到困惑。当前,不允许绑定allowBlank,因为我收到一条错误消息Ext.mixin.Bindable.applyBind(): Cannot bind allowBlank on Ext.form.field.ComboBox - missing a setAllowBlank method.,提示我如果使用配置,则不会收到该错误,但它不能按预期工作:
xtype: 'combobox',
anchor: '100%',
fieldLabel: 'Affiliation',
name: 'AffiliationId',
displayField: 'Abbreviation',
valueField: 'AffiliationId',
queryMode: 'local',
typeAhead: true,
config: {
forceSelection: true,
allowBlank: false
},
bind: {
store: '{affiliationStore}',
allowBlank: '{allowBlankAffiliation}',
forceSelection: '{forceSelectionAffiliation}'
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如何绑定allowBlank公式或其他任何属性?这是否可能,或者我完全不了解某些内容?如果是这样,我怎么知道我可以绑定什么和我不能绑定什么?
只有具有setter属性,一组方法应在存在文档,可以结合。'setAllowBlank'不存在。allowBlank没有开箱即用的二传手,因为它没有放在combobox对象的配置中。如您在源代码中看到的:
http://docs.sencha.com/extjs/5.0/5.0.1-apidocs/source/Text.html#Ext-form-field-Text-cfg-allow空白
通过allowBlank像您一样将a设置为配置,您只会抑制该错误。
您可以做的是扩展ComboBox并创建一个自定义配置属性。之后,您可以覆盖更新方法(由配置系统创建)并allowBlank手动设置。
Ext.define('MyComboBox', {
extend: 'Ext.form.field.ComboBox',
alias: 'widget.MyComboBox',
config: {
requireMe: false
},
// override of generated update method
updateRequireMe: function(value) {
this.allowBlank = !value;
}
});
Run Code Online (Sandbox Code Playgroud)
用法:
xtype: 'MyComboBox',
valueField: '_id',
displayField: 'name',
queryMode: 'local',
requireMe: '{!allowBlank}',
bind: {
store: '{people}'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2946 次 |
| 最近记录: |