简体   繁体   中英

Bind in button not working in Ext JS

I want the Zulu button to be disabled until the item inside the change function has a newVal set to it. Currently the Zulu button is enabled and this is an issue because I want it to be disabled until a certain condition, ie. item.set('textstuff', newVal); is met.

What is wrong with my code? I used this post: ExtJS 6 - Bind disabled property to new records in a store for some inspiration but still need some help.

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}'
            }
        }]
    }]

or in your ViewModel.Js file you can add formulas and configure your bondbool, lets say you set the bindbool at the controller : me.getViewModel().set('bindbool', true)

in your ViewModel :

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

By doing this you can control your viewModel outputs, Goodluck and have fun coding Extjs

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM