【发布时间】:2020-04-01 19:24:53
【问题描述】:
在 EXTJS 4/5 中,您可以创建一个内联函数,然后您可以将其用作网格列渲染器,就像这样
function myColumnRenderer(value, metaData, record, rowIndex, colIndex, store){
//do something with the data and return
return value;
}
在你的网格的列定义中,你会像这样引用渲染器
columns:[
{ text: 'ColA', dataIndex: 'ColA', renderer: myColumnRenderer},
{ text: 'ColB', dataIndex: 'ColB', renderer: myColumnRenderer}
]
在 EXTJS 6.5 中,您仍然可以这样做吗?如果可以,您在哪里定义渲染器函数?在控制器、viewModel 还是其他地方?我尝试将函数放在控制器中并将 this.myColumnRenderer 放在列的渲染器中,但它似乎从未被调用。
看起来这是一个选项,只是不确定它是否是正确的方法
columns:[
{ text: 'ColA', dataIndex: 'ColA', renderer: function(value, metaData, record, rowIndex, colIndex, store) {
return this.getController().myColumnRenderer(value, metaData, record, rowIndex, colIndex, store);
}},
{ text: 'ColB', dataIndex: 'ColB', renderer: function(value, metaData, record, rowIndex, colIndex, store) {
return this.getController().myColumnRenderer(value, metaData, record, rowIndex, colIndex, store);
}}
]
【问题讨论】:
-
这就是我讨厌 MVC 的原因。你随意将事物一分为二,这取决于你认为什么是视图,什么是逻辑。