gpt4 book ai didi

javascript - 将选定的记录加载到模态窗口

转载 作者:行者123 更新时间:2023-11-30 07:35:58 25 4
gpt4 key购买 nike

我有一个带有数据网格。当我选择一个并点击tbar上的“编辑”按钮时,我想查看一个窗口 (包括一个表单),其中包含来自所选行的数据。 fiddle :https://fiddle.sencha.com/#fiddle/ukp

但是我不知道如何访问当前的selected row 或如何将data 从一个controller 传递到另一个(GridController --> WindowController).

提前致谢!

最佳答案

虽然这个问题得到了回答,但我认为可以通过两种方式以不同的方式(和更清洁的方式)完成。

首先是 CD 使用的方式,这是一个很好的答案,但更清晰,并且在您的 controller 中没有任何逻辑。让 viewmodel 完成他的工作:

bind 属性配置到 grid 上的 selection:

bind: {
selection: '{rec}'
},

字段保持不变:

items: [{
xtype: 'textfield',
fieldLabel: 'Firstname',
bind: '{rec.firstName}'
}, {
xtype: 'textfield',
fieldLabel: 'Lastname',
bind: '{rec.lastName}'
}]

就是这样。现在您可以删除窗口 controller 中的逻辑。

工作示例:https://fiddle.sencha.com/#fiddle/ulf

第二种方法,我经常使用它,是在您的 viewmodel 上进行深度绑定(bind)。这是为了跟踪所选的 record,无论它发生了什么变化。这可以通过 binddeep: true 来完成。

在您的(单独的)viewmodel 中放置一个公式:

formulas: {
rec: {
// We need to bind deep to be notified on each model change
bind: {
bindTo: '{myGrid.selection}', //--> reference configurated on the grid view (reference: myGrid)
deep: true
},
get: function(record) {
return record;
},
set: function(record) {
if(!record.isModel) {
record = this.get('records').getById(record);
}
this.set('currentRecord', record);
}
}
}

关于javascript - 将选定的记录加载到模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32845812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com