如何在 ExtJs 行扩展器主体中使用参数调用函数



我在 ExtJs 中使用行扩展器插件时遇到问题。我正在尝试做的是调用 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>'

你可以做这样的事情:

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

正如您现在所拥有的那样,它正在尝试立即调用格式节流,并且语法不正确。您希望它在填充实际值后运行。

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

相关内容

最新更新