我在使用ExtJs中的Row Expander插件时遇到问题。我要做的是调用formatThrottle函数并传递throttleState。
这是那些愚蠢的语法之一,你可以看到我正在尝试做什么,但我在第二轮括号上得到语法错误,其他行工作完美,已经在我们的代码库中 - 因此我的下一个问题因为我最初并没有这样做:
使用{}(大括号)将当前行的参数值传递给HTML的机制是什么?这是一个行扩展器还是一般的JavaScript事物?
https://fiddle.sencha.com/#fiddle/lbn
rowBodyTpl :
'<table><tr>' +
'<td class="TdIndent"/>' +
'<td class="TdItemsWidth">' + formatThrottle( + '{throttleState}' + ) + '</td>' +
'<td class="TdAmountWidth">{throttleReason}</td>' +
'<td class="TdIndent"/>' +
'<td class="TdItemsWidth">{throttleState}</td>' +
'<td class="TdAmountWidth">{throttleReason}</td>' +
'</tr></table>'
答案 0 :(得分:1)
您可以这样做:
rowBodyTpl: [
'<table><tr><td>{[this.formatThrottleState(values.id)]}</td></tr></table>', {
formatThrottleState : function(throttleState) {
if(throttleState === 1) {
return "formatted";
} else {
return "not formattted";
}
}
}
]
希望这会帮助你。
该函数必须作为模板的一部分传递,以便它保持在范围内。
您可能还会在文档中找到有用的内容:http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.XTemplate
现在你正在尝试立即调用formatThrottle,语法不正确。您希望它在填充实际值后运行。
大括号将仅使用行扩展器类中的逻辑替换。