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'));
1条答案
按热度按时间w41d8nur1#
不太确定您真正想要什么,这肯定不是最好的解决方案,但可能会给您一些想法:
这里的想法很简单,将绑定数据 Package 在一个公式中,自定义getter可以决定您是否已经存储了一些实际值,如果底层数据更改为null,则返回该值。当您需要此条件绑定时,请绑定到绑定到数据的公式。