如何在ExtJS中的绑定公式中使用逻辑运算符?
我在一个表单中有3个输入字段,只想在前两个输入有值时启用第三个输入 这似乎不起作用:如何在ExtJS中的绑定公式中使用逻辑运算符?,extjs,extjs6,Extjs,Extjs6,我在一个表单中有3个输入字段,只想在前两个输入有值时启用第三个输入 这似乎不起作用: Ext.define('MyApp.view.myobj.MyPanel', { extend:'Ext.Panel', viewModel: {}, items: [{ xtype: 'form', defaultType: 'textfield', items: [ {fieldLabel: 'Field 1
Ext.define('MyApp.view.myobj.MyPanel', {
extend:'Ext.Panel',
viewModel: {},
items: [{
xtype: 'form',
defaultType: 'textfield',
items: [
{fieldLabel: 'Field 1', reference: 'field1', publishes: 'value'},
{fieldLabel: 'Field 2', reference: 'field2', publishes: 'value'},
{
fieldLabel: 'Field 3',
bind: {
disabled: '{!field1.value} || {!field2.value}'
}
},
],
}],
});
在视图模型中,添加公式以返回{!field1.value}|{!field1.value}的值 根据小提琴演奏:
viewModel: {
formulas: {
something: {
bind: {
x: '{!field1.value}',
y: '{!field2.value}'
},
get: function (data) {
if (data.x || data.y) return true;
else return false;
}
}
}
},
items: [{
xtype: 'form',
defaultType: 'textfield',
bodyPadding: 10,
items: [
{fieldLabel: 'Field 1', reference: 'field1', publishes: 'value'},
{fieldLabel: 'Field 2', reference: 'field2', publishes: 'value'},
{
fieldLabel: 'Field 3',
bind: {
disabled: "{something}"
}
},
],
}]
将公式配置添加到ViewModel,如下所示:
formulas : {
showSomeComponent : function (get) {
return get('isAuthorized') && !get('isDisabled');
}
}
javascript会在到达extjs.My bad之前将其解析为“{!field1.value}”。嗯。另一个选择是,你可以在字段1和字段2中添加一个更改侦听器,检查这两个值,并相应地启用/禁用。是的,这就是我目前正在做的,我想知道是否有一种简单的“绑定”方法。这似乎可以完成工作,谢谢。我会再等一会儿,也许有一个更简单的内联解决方案。这个公式是一个非常好的主意。有一个问题,在一段时间内,我试图解决类似的情况。在字段中使用属性allowBlank:false时,bind无法正常工作。即,在字段具有值后,如果清除字段1或字段2,则不会禁用第三个字段。你知道怎么解决这个问题吗?小提琴: