gpt4 book ai didi

javascript - 如何在 ExtJs Row Expander Body 中调用带有参数的函数?

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

我在 ExtJs 中使用 Row Expander 插件时遇到问题。我想要做的是调用 formatThrottle 函数并将 throttleState 与其一起传递。

这是那些愚蠢的语法问题之一,你可以看到我正在尝试做什么,但我在第二个圆括号中遇到语法错误,其他行工作完美并且已经在我们的代码库中 - 因此我的下一个问题因为我最初没有开发这个:

可以使用 {}(大括号)将当前行的参数值传递给 HTML 的机制称为什么?这是行扩展器还是一般的 JavaScript?

编辑:针对我的问题修复的 Fiddle 链接:

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>'

最佳答案

你可以这样做:

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,但语法不正确。您将希望它在填充实际值后运行。

大括号将仅使用行扩展器类中的逻辑替换。

关于javascript - 如何在 ExtJs Row Expander Body 中调用带有参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29672451/

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