如何在ExtJS viewmodel中加载非模型数据?

问题描述 投票:0回答:2

我们已经慢慢习惯了ExtJS,我们最近开始使用视图模型将数据绑定到我们的表单面板。一般来说,我们试图使我们的ExtJS模型与我们的后端java模型保持一致,并且所需的任何转换都是通过视图模型公式完成的。在查看一般数据时,这非常有效,但是当我们想要显示在任何类型的模型中不存在的更具体的数据时,我们不确定如何在客户端中处理它们的加载和创建。例如:

我有一个iddescription属性的文件夹模型。通过读取请求加载文件夹模型时,模型从数据库等加载描述。与用户模型相同。两个属性idusername。我的问题是,如果我有一个表单面板,我会显示用户及其相关文件夹。就数据库层而言,有一个1:1的表,其中user id连接到folder id以匹配用户和他的个人文件夹。但是,我们在任何模型中都没有此信息。有一个名为getUserFolder的特定服务,它返回给定的特定folderuser id对象。我应该如何将它放在我的面板视图模型中,如何处理加载过程?

我应该创建一个表示表的新模型并使用get请求来获得关联,然后使用formulas获取给定folder id的匹配user?我应该使用正常的Ext.Ajax.request来获取folder id然后加载文件夹模型?我应该创建一个返回所有数据(用户和文件夹)的常规服务,然后在客户端通过两个模型的setData在请求回调上匹配它们吗?什么是最佳做法?

TL; DR:在视图模型中加载模型数据工作正常,但如何解决在视图模型中加载非模型数据的问题?它们仅在特定场景中需要,并且不包含在模型的创建中。

java extjs viewmodel
2个回答
0
投票

您的任务与视图几乎没有关系。它是所有模型,数据模型:) ExtJS中有associations的概念,包括1:1 scenario。所以我建议调查一下。


0
投票

数据绑定和为其提供支持的ViewModel是Ext JS的强大补充。

Ext.create('Ext.panel.Panel', {
    title: 'Simple Form',

    viewModel: {
        type: 'test'
    },

    layout: 'form',
    defaultType: 'textfield',

    items: [{
        fieldLabel: 'First Name',
        bind: '{firstName}' // uses "test" ViewModel from parent
    },{
        fieldLabel: 'Last Name',
        bind: '{lastName}'
    }]
});
© www.soinside.com 2019 - 2024. All rights reserved.