extjs 5 将值设置为具有远程值的组合框时出错
extjs 5 Error while setting value to the combobox with remote values
有带有组合框的表单面板
Ext.define('MyApp.admin.view.UserAddView', {
extend: 'Ext.form.Panel',
requires: [
'MyApp.admin.controller.UserAddViewController'
],
controller: 'userAdd',
autoScroll: true,
frame:true,
items: [{
xtype:'combobox',
fieldLabel: 'Roles',
collapseOnSelect: true,
editable: false,
multiSelect: true,
queryMode: 'remote',
queryParam: undefined,
displayField: 'authority',
bind: {
store: '{role}'
},
name: 'authorities'
}]
});
然后我想从视图控制器动态地为这个组合框设置值
var ob = {'authorities': 'ROLE_ADMIN_USERS'};
var panelToAddName = Ext.create('MyApp.admin.view.UserAddView', {});
panelToAddName.getForm().setValues(ob);
每次我收到错误
Uncaught TypeError: undefined is not a function
在下一行
panelToAddName.getForm().setValues(ob);
在combobox内部本地指定store就没有这个问题
store: ['ROLE_ADMIN_USERS']
我猜有一个问题与调用 setValue 时未加载远程列表有关,但是设置 queryMode: 'local' 并从视图控制器加载带有列表的存储并不能解决问题。
有没有办法通过从视图控制器远程加载的列表来设置组合框的值?
我认为问题出在您的 combobox 的 bind 配置上。在 Ext5 文档中,combobox.
没有名称为 bind 的配置
如果您的商店名称是 role,请尝试写 store:'role'
而不是 bind。
希望这会奏效。
我终于通过设置
解决了这个问题
queryMode: 'local'
然后从视图控制器加载存储
var storeRole = me.getViewModel().getStore('role');
storeRole.load();
然后组合框的bindStore
var combobox = panelToAddName.items.getAt(0).items.getAt(0).items.getAt(0).items.getAt(2);
combobox.bindStore(storeRole);
如果有人知道如何以更简单的方式获得组合框,欢迎您发表评论。以下没有 bindStore() 方法
Ext.ComponentQuery.query('combobox')[0]
有带有组合框的表单面板
Ext.define('MyApp.admin.view.UserAddView', {
extend: 'Ext.form.Panel',
requires: [
'MyApp.admin.controller.UserAddViewController'
],
controller: 'userAdd',
autoScroll: true,
frame:true,
items: [{
xtype:'combobox',
fieldLabel: 'Roles',
collapseOnSelect: true,
editable: false,
multiSelect: true,
queryMode: 'remote',
queryParam: undefined,
displayField: 'authority',
bind: {
store: '{role}'
},
name: 'authorities'
}]
});
然后我想从视图控制器动态地为这个组合框设置值
var ob = {'authorities': 'ROLE_ADMIN_USERS'};
var panelToAddName = Ext.create('MyApp.admin.view.UserAddView', {});
panelToAddName.getForm().setValues(ob);
每次我收到错误
Uncaught TypeError: undefined is not a function
在下一行
panelToAddName.getForm().setValues(ob);
在combobox内部本地指定store就没有这个问题
store: ['ROLE_ADMIN_USERS']
我猜有一个问题与调用 setValue 时未加载远程列表有关,但是设置 queryMode: 'local' 并从视图控制器加载带有列表的存储并不能解决问题。
有没有办法通过从视图控制器远程加载的列表来设置组合框的值?
我认为问题出在您的 combobox 的 bind 配置上。在 Ext5 文档中,combobox.
没有名称为 bind 的配置如果您的商店名称是 role,请尝试写 store:'role'
而不是 bind。
希望这会奏效。
我终于通过设置
解决了这个问题queryMode: 'local'
然后从视图控制器加载存储
var storeRole = me.getViewModel().getStore('role');
storeRole.load();
然后组合框的bindStore
var combobox = panelToAddName.items.getAt(0).items.getAt(0).items.getAt(0).items.getAt(2);
combobox.bindStore(storeRole);
如果有人知道如何以更简单的方式获得组合框,欢迎您发表评论。以下没有 bindStore() 方法
Ext.ComponentQuery.query('combobox')[0]