我正在使用示例管理仪表板来为应用程序创建一个框架,我正在做的一件事就是连接仪表板的标题。
下面的代码是来自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'
}
}
}
}
});
答案 0 :(得分:0)
在您的第一个代码块中,您可能会错过此部分(在items
属性之前):
viewModel: {
xclass: 'BbgApp.view.main.MainViewViewModel'
},
换句话说,设置视图viewmodel
。