gpt4 book ai didi

extjs - ViewModel 绑定(bind)记录幻象

转载 作者:行者123 更新时间:2023-12-03 10:35:59 39 4
gpt4 key购买 nike

我想根据记录是否为幻影来隐藏复选框。尝试使用 View 模型来实现这一点,但它似乎不起作用。
相关代码见下文。为简洁起见,我省略了不相关的代码。
viewModel 到 View 的绑定(bind)按预期工作。当我尝试绑定(bind) activeRecord.name到标题属性 2-way 数据绑定(bind)工作正常。

查看模型

Ext.define('MyApp.view.content.ContentViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.content',

data: {
activeRecord: null
}
});

Controller
var contentWindow = Ext.widget('content-details');
contentWindow.getViewModel().set('activeRecord', contentBlock);

查看
viewmodel: 'content',
items: [
{
xtype: 'checkbox',
boxLabel: 'My checkbox',
bind: {
hidden: '{!activeRecord.phantom}'
}
}
]

最佳答案

我们最终为 Model 使用了以下基类,它比 ViewModel 中的公式更方便。

// Use your own name instead of BaseModel

Ext.define('BaseModel', {
extend: 'Ext.data.Model',

fields: [{
name: 'phantom',
persist: false,
convert: function (v, rec) {
var id = rec.data[rec.idProperty];
return !id || (Ext.isString(id) && id.indexOf(rec.entityName) == 0);
}
}],

commit: function (silent, modifiedFieldNames) {
this.data.phantom = false;
this.callParent(arguments);
}
});

然后你就可以使用你想要的绑定(bind)了
    bind: {
hidden: '{!activeRecord.phantom}'
}

关于extjs - ViewModel 绑定(bind)记录幻象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29117889/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com