2016-07-14 72 views
0

我在我的項目中使用JSmart(SMARTY JS端口)。我有兩個選擇,以獲得模板:Javascript innerHTML和JSON解析字符串差異

  1. 插入內

    <腳本ID = 「第三方物流」 類型= 「文本/ X-jsmart-TMPL」 > ... < /腳本>

document.getElementById('tpl').innerHTML 
01拉
  • 接收它在JSON值
  • 我遇到的問題與第二個選項:JSON.Parse後項值包含特殊字符等\ r \ n或\噸,includng/JS JSmart不會拒絕這一點。

    如果從innerHTML中提取結果字符串,處理得很好。

    小例子: JSON解析值:

     
    <!-- \r\n SMARTY template\r\n\tdata object\r\n 
    

    innerHTML的拉動值:

     
    <!-- 
        SMARTY template 
         data object 
    

    我怎麼能轉換成JSON解析值等於從我得到的innerHTML字符串?

    +0

    請添加JSON模板! –

    +0

    請參閱pasteBin:http://pastebin.com/bYtDgAY4 –

    +0

    Node.js或Browser? –

    回答

    0

    模板文件不是JSON,是一個聰明的模板。但是,你可以從這樣的文件/ URL取,

    $.get("template_url", function(tplText) { 
        var tpl = new jSmart(tplText); 
        //Compile the tpl with your data object 
        var res = tpl.fetch(data); 
        //res is your compiled HTML 
        //document.write(res); 
    }); 
    

    演示:https://jsfiddle.net/iRbouh/3wpfu604/

    +0

    我通過$ .getJSON收到此模板作爲接收對象的一部分: {data:「...」,tpl:「...」} –

    +0

    請勿使用getJSON!該模板不是有效的JSON而是使用get! –

    +0

    再次,我收到JSON字符串,如{data:「...」,tpl:「...」},$ .getJSON將其解碼爲JS對象X.我嘗試使用X.data和X.tpl –