ExtJS 5将组合框绑定到选择

时间:2015-06-07 03:11:22

标签: javascript extjs data-binding

让我们想象一个简单的应用程序:用户管理。在主视图中,我们有一个网格中的用户列表;选择用户将启用“编辑”按钮。 我们抓取网格中的选定行(使用bind {selection : 'selectedUser';},然后将其传递到“修改”视图:Ext.create('viewName', {viewModel:{data : selectedUser}});

现在,用最简单的术语来说,'用户'模型有'名称'和'语言'。编辑表单将包含“名称”的文本框和语言的组合框。这个组合框绑定到一个商店,该商店包含所有带有'langId'和'langName'的语言作为字段:

xtype: 'combobox',
displayField: 'langName',
valueField: 'langId',
bind: {
 store: '{allLangs}',
 value: '{allLangs.langId}',
 selection: '{selectedLang}'
}.

此外,“编辑”表单将使textBox绑定到selectedUser的名称:

bind : {value : '{selectedUser.Name}'}

现在,在afterRender事件中,我将langNameselecteUser的值设置为组合框的选定值:

var displayValue = viewModel.get('selectedUser').get('langName');
langCombo.setValue(displayValue);

好的,现在你怎么知道当前的记录('selectedUser')是否改变了语言? 如果我正在检查model.dirty属性是否仍为false,即使该语言的值与最初的不同。 如何绑定组合框,以便在更改所选值时将模型的dirty属性设置为true

显然,如果我正在修改name,则模型将具有dirty属性true

提前谢谢。

0 个答案:

没有答案