我尝试了render
和afterrender
之类的活动,但不知怎的,他们都是在创建renderer()
和defaultRenderer()
的DOM元素之前拍摄的。
Ext.define( 'MyApp.column.MyColumn', {
extend: 'Ext.grid.column.Column',
constructor: function() {
this.callParent( arguments );
this.on( 'afterrender', function() {
var oDomElement = Ext.get( 'MyColumn.MyApp.model.Record-0-ext-record-22' );
console.log( 'DOM-Element: ', oDomElement );
} );
},
defaultRenderer: function( d, m, oRecord ) {
return '<div id="MyColumn.' + oRecord.id + '" />';
}
} );
当我之后检查DOM时,ID MyColumn.MyApp.model.Record-0-ext-record-22
的元素存在,但oDomElement
触发时afterrender
总是空的。
答案 0 :(得分:1)
afterrender
的{{1}}事件将在呈现后发生。但这与说法不同 - 当你渲染每一条记录时,这将触发Ext.grid.column.Column
。
换句话说,首先渲染网格,然后加载存储,每个记录都被“渲染”。