【问题标题】:Function not found in jTemplate在 jTemplate 中找不到函数
【发布时间】:2010-02-23 16:42:02
【问题描述】:

我尝试从 jTemplates 模板中调用的函数出现一个奇怪的问题,给出错误“XYZ.getFriendlyName 不是函数”。似乎我一定忽略了一些简单的事情,但我已经尝试了我能想到的一切并且错误仍然存​​在。代码如下所示:

<input type="text" value="{#if $T.RowId !== null}{XYZ.getFriendlyName($T.RowId)}{#/if}"/>

我尝试删除函数中的所有内容以排除语法错误,重命名函数并将其移动到全局命名空间中,将函数本身移动到模板所在的页面中,在模板代码之前..甚至将三元运算符中的所有内容,到目前为止我还没有在 jTemplates 中工作过。我继续收到同样的错误。有谁知道我可以解决这个问题的方法吗?

谢谢! 加兰

【问题讨论】:

  • XYZ.getFriendlyName 是如何定义的?
  • 我已经尝试了多种不同的方式,但我想做的是在外部文件中定义它,如下所示:XYZ.getFriendlyName = function (pipe,questions) { ... };

标签: javascript jtemplate


【解决方案1】:

不要在函数中使用撇号: 先定义函数:

function getFriendlyName( param ){
}

向参数添加函数:

$('template-name').setParam('getFriendlyName', getFriendlyName);

使用$P访问模板内的函数,如$P.getFriendlyName()
例如。 {$P.getFriendlyName($T.id)}

【讨论】:

    【解决方案2】:
    1. 先定义函数:

      函数getFriendlyName(参数){

      }

    2. 向参数添加函数:

      $('template-name').setParam('getFriendlyName', 'getFriendlyName');

    3. 使用 $P 访问模板内的函数 $P.getFriendlyName()

    【讨论】:

      【解决方案3】:

      如果有人好奇,这是一个时间和背景问题。在完全读取同一页面上的 JS 文件之前,正在处理 jTemplate。将函数移动到开始处理顶部/第一个模板的对象中解决了问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-29
        • 2019-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多