2010-02-23 54 views
0

我在函數中出現了一個奇怪的問題,我試圖從jTemplates模板中調用,提供錯誤「XYZ.getFriendlyName不是函數」。看起來我一定忽略了一些簡單的東西,但我試過了我能想到的一切,錯誤依然存在。代碼如下所示:在jTemplate中找不到函數

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

我試圖在排除了語法錯誤的功能刪除了一切,重命名功能,並將其移入全局命名空間,函數本身移動到頁面的模板在模板代碼之前,甚至將所有內容都放在一個三元運算符中,到目前爲止我還沒有在jTemplates中使用它。我繼續得到同樣的錯誤。有誰知道我可以解決這個問題的方法?

謝謝! Garann

+0

XYZ.getFriendlyName如何定義? – 2010-02-23 17:04:01

+0

我嘗試了多種不同的方式,但我試圖做的是將其定義在外部文件中,如下所示: XYZ.getFriendlyName = function(pipe,questions){ ... }; – garann 2010-02-23 18:32:08

回答

0

如果有人好奇,這是一個時間和背景問題。在同一頁面上的JS文件被完全讀取之前,jTemplate正在被處理。將函數移動到開始處理頂部/第一個模板的對象可以解決問題。

1
  1. 第一定義功能:

    功能getFriendlyName(PARAM){

    }

  2. 添加功能PARAM:

    $( '模板名稱')setParam。 ('getFriendlyName','getFriendlyName');通過使用$ P像 $ P.getFriendlyName()內模板

  3. 訪問功能

2

不要使用撇號功能: 第一定義功能:

function getFriendlyName(param){ 
} 

添加功能to param:

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

Access功能模板內使用$P$P.getFriendlyName()
例如。 {$P.getFriendlyName($T.id)}