ExtJS:阻止ViewModel绑定在null上更新

ogsagwnx  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(151)

当值为空时,是否可以阻止ViewModel更新其绑定?或者更常见的任何其他特定值。

w41d8nur

w41d8nur1#

不太确定您真正想要什么,这肯定不是最好的解决方案,但可能会给您一些想法:

const viewModel = new Ext.app.ViewModel({
    formulas: {
        notifyOnlyWhenNotNull: {
            bind: '{name}',
            get: function(value) {
                if (value) {
                    this.storedNotNullValue = value;
                }
                return value?value:this.storedNotNullValue;
            }
        }
    },
});

viewModel.bind('{notifyOnlyWhenNotNull}', function(v) {
    console.log('Changed to',v);
});

viewModel.set('name','Something not null');
viewModel.notify();
viewModel.set('name',null);
viewModel.notify();
console.log('We still have the last non-null value', viewModel.get('notifyOnlyWhenNotNull'));
console.log('But we also have the real "null" value', viewModel.get('name'));

这里的想法很简单,将绑定数据 Package 在一个公式中,自定义getter可以决定您是否已经存储了一些实际值,如果底层数据更改为null,则返回该值。当您需要此条件绑定时,请绑定到绑定到数据的公式。

相关问题