我正在创建一个窗口,其中包含一个recordref
配置的面板,我已将一个名为tpl
的配置传递给窗口组件,如下所示,我希望更新{{1使用recordref中的数据配置。
rowdblclick: function(view, record,element,rowIndex,e,eOpts){
var me = this;
Ext.create('MyWindow',{
recordref: record
});
}
我的窗口看起来像这样
Ext.define('MyWindow',{
extend: 'Ext.window.Window',
alias: 'widget.details',
controller: 'details',
ghost: false,
constrain: true,
title: 'Details',
modal: true,
resizable: false,
autoScroll: true,
items: [
{
xtype: 'panel',
reference: 'infopanel',
items: [
{
xtype: 'panel',
tpl: ['<p>Name: {name}</p>',
'<p>Age: {age}</p>'],
listeners: {
render: 'updateTpl'
}
},
... other items ...
]
}
]
});
并且窗口控制器中的函数updateTpl
看起来像
updateTpl: function(panel, eOpts){
var me = this;
var view = me.getView();
var record = view.recordref;
panel.update(record);
}
此代码会导致此错误
app.js?_dc=1502746390069:102863 Uncaught TypeError: Cannot set property 'innerHTML' of null
at constructor.overwrite (app.js?_dc=1502746390069:102863)
at constructor.overwrite (app.js?_dc=1502746390069:51335)
at constructor.update (app.js?_dc=1502746390069:65016)
at constructor.updateTpl (app.js?_dc=1502746390069:180214)
at constructor.fire (app.js?_dc=1502746390069:18721)
at constructor.doFireEvent (app.js?_dc=1502746390069:19625)
at constructor.doFireEvent (app.js?_dc=1502746390069:62695)
at constructor.prototype.doFireEvent (app.js?_dc=1502746390069:52784)
at constructor.fireEventArgs (app.js?_dc=1502746390069:19478)
at constructor.fireEvent (app.js?_dc=1502746390069:19437)
我在这里做错了什么?
答案 0 :(得分:2)
将数据对象传递给面板更新功能。
panel.update(record.getData());
update函数需要 htmlOrData 作为第一个参数。你也可以这样做:
panel.update({
name: record.get('name'),
age: record.get('age')
})