2012-12-11 56 views
0

好的。不知道這是一個好主意。我正在構建一個模板,將JSON配置傳遞給裝配模板的Javascript文件。如何將JavaScript包含在JSON字符串中?

對於鏈接,我需要包括一些邏輯如何在我的JSON配置中構建它們。我將不得不調用此:

path.href.replace(/.*view=/, "") + ".cfm?id="+content.vcard.adresses[1]["iln/gln"] 

這在我的配置JSON:

<ul data-template="true" data-config='{ 
    "type":"listview", 
    "link":"path.href.replace(/.*view=/, '') + '.cfm?id='+content.vcard.adresses[1]['iln/gln']", 
    "iconpos":"right" 
    }'></ul> 

不會因爲引號標記,亂七八糟的工作,所以JSON是有效的,但在單引號包裹它弄亂了HTML。

問題
有什麼辦法可以通過這個沒有破壞HTML?由於它是一個模板,我希望儘可能保持javascript邏輯清潔=不要爲每個模板實例放入自定義方法。所以我想在這裏保留方法調用。

謝謝!

回答

1

您可以使用HTML &#39;逃離實體引號:

<ul data-template="true" data-config='{ 
    "type":"listview", 
    "link":"path.href.replace(/.*view=/, &#39;&#39;) + &#39;.cfm?id=&#39;+content.vcard.adresses[1][&#39;iln/gln&#39;]", 
    "iconpos":"right" 
    }'></ul> 

這裏是一個演示:http://jsfiddle.net/fVLPd/

+0

hm。讓我們看看如果JavaScript能理解。非常感謝。 – frequent

+0

不起作用。在對象' – frequent

+0

中的屬性值之後引發Jquery中的錯誤:'SyntaxError:JSON.parse:expected','或'}'?Javascript是否知道如何處理轉義字符?我將HTML配置-JSON傳遞給Javascript。 – frequent

1

考慮使用JSON.stringify建立從對象整體JSON字符串。比你不需要擔心錯誤編碼的引號或試圖以其他方式編碼引號。

如果您生成模板服務器端 - 爲您的服務器端語言使用JSON編碼器...

+0

也是一個好主意。儘管我只是在試驗(最終需要離線應用程序),但手動構建JSON服務器端有點拖累:-) – frequent

相關問題