如何使用Single记录将标签绑定到ViewModel存储

时间:2016-07-27 18:11:48

标签: extjs extjs6

我正在使用示例管理仪表板来为应用程序创建一个框架,我正在做的一件事就是连接仪表板的标题。

下面的代码是来自ViewModel的View和Store,商店正在获取数据,我已经通过在渲染侦听器中使用这行代码来验证它,以验证数据是否正在填充。 this.getViewModel().data

仪表板在视图中包含以下代码,如何绑定此记录以及商店' name'字段到tbtext组件如下所示?我是否需要在表单中包装标题栏以便首先填充记录?绑定调用是否需要以某种方式定义基于零的记录?或者记录是否可能无法及时加载以基于商店从ViewModel加载的方式进行渲染(这没有意义)??

省略号用于删除不相关的代码:

Ext.define('BbgApp.view.main.MainView', {
extend: 'Ext.container.Viewport',
alias: 'widget.mainview',

requires: [
    'BbgApp.view.main.MainViewViewModel',
    'BbgApp.view.main.MainViewViewController',
    'BbgApp.view.main.MainContanierWrap',
    'Ext.form.Panel',
    'Ext.toolbar.Toolbar',
    'Ext.Img',
    'Ext.toolbar.TextItem',
    'Ext.toolbar.Separator',
    'Ext.list.Tree',

],

controller: 'mainmainview',
viewModel: {
    type: 'mainmainview'
},
flex: 1,
itemId: 'mainView',
layout: 'border',
items: [
    {
        xtype: 'toolbar',
        region: 'north',
        cls: 'sencha-dash-dash-headerbar',
        height: 100,
        itemId: 'headerBar',
        items: [
            ...
            {
                xtype: 'tbseparator',
                flex: 1
            },
            {
                xtype: 'tbtext',
                text: 'Bob Wazowski',
                bind: {
                    text: '{userStore.name}'
                },
                reference: 'tbname'
            }, ...

这是ViewModel代码:

Ext.define('BbgApp.view.main.MainViewViewModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.mainmainview',

requires: [
    'Ext.data.Store',
    'Ext.data.field.Field',
    'Ext.data.proxy.Rest',
    'Ext.data.reader.Json'
],

stores: {
    userStore: {
        pageSize: 0,
        remoteFilter: true,
        remoteSort: true,
        autoLoad: true,
        fields: [
            {
                name: 'id'
            },
            {
                name: 'name'
            }            ],
        proxy: {
            type: 'rest',
            noCache: false,
            url: '/api/user',
            appendId: false,
            reader: {
                type: 'json',
                rootProperty: 'data'
            }
        }
    }
}

});

1 个答案:

答案 0 :(得分:0)

在您的第一个代码块中,您可能会错过此部分(在items属性之前):

viewModel: {
    xclass: 'BbgApp.view.main.MainViewViewModel'
},

换句话说,设置视图viewmodel