我希望禁用Zulu按钮,直到更改功能中的项目将newVal设置为它为止。目前Zulu按钮已启用,这是一个问题,因为我希望在特定条件下将其禁用。 item.set('textstuff',newVal);被满足。

我的代码有什么问题?我使用了这篇文章:ExtJS 6 - Bind disabled property to new records in a store以获得一些启发,但仍然需要一些帮助。

title: 'Foo',
            xtype: 'Bar',
            autoSelect: true,
            labelWidth: 150,
            listeners: {
                change: function(component, newVal, OldVal) {

                    var view = this.up('uploadthings');
                    var items = view.getViewModel().getStore('things').data.items;
                    items.forEach(function(item) {
                        item.set('textstuff', newVal);
                    });
                    view.getViewModel('bindBool', true);
                }
            }
        }, {


 items: [{
        xtype: 'panel',
        buttons: [{
            style: 'margin-right: 30px',
            text: 'Zulu',
            iconCls: 'x-fa fa-upload',
            handler: 'xray',
            bind: {
                    disabled: '{bindBool}'
            }
        }]
    }]

最佳答案

或在ViewModel.Js文件中,您可以添加公式并配置bondbool,
假设您在控制器上设置了bindbool:me.getViewModel().set('bindbool', true)

在您的ViewModel中:

formulas : {
    bindbool : {
         get : function(get){
              var tempVar = get('bindbool'); //--> true because you set it to true
              return tempVar == true ? tempVar : false;
        }
    }
}


这样,您可以控制viewModel的输出,
祝您好运,并为Extjs编写代码带来乐趣

09-19 13:05