2016-12-23 64 views
0

我的問題是,當我將數據發送到車把模板是我的字符串數組轉換爲變量數組:把手轉換成的變量字符串數組的數組

res.render('index', { 
    title: 'Express' , 
    chartT:"title", 
    lab:['test','test2','test3'], 
    dat:[1,3,5] 
}); 

模板代碼:

<canvas id="myChart" width="400" height="400"></canvas> 
    <script> 
     var pollOptions = [{{{lab}}}]; 
     var pollData = [{{{dat}}}]; 
     createChart("mychart",pollOptions,pollData); 
    </script> 

而且在pollOptions我得到這個

var pollOptions = [test,test2,test3]; 

未捕獲的ReferenceError問題:測試沒有定義

我不知道爲什麼模板轉換他們...

預先感謝您的幫助。

回答

1

HandleBars致力於HTML模板(不渲染一個JS變量) 你可以做這樣的事情(不帶把手):

var pollOptions = ["{{{lab}}}"]; 
var pollData = ["{{{dat}}}"]; 
+0

我用的把手爲模板...如:

的{{title}}

從服務器傳下來的數據,以便它可以顯示給用戶,但我還需要爲圖表提供數據(用於使代碼更易讀的變量) – elwindly

+0

是的,我知道。導致被捕獲錯誤的原因是'handlebars'從變量中刪除''',這意味着''''引擎會將它們視爲您希望的JavaScript變量而不是'String'。 –

+0

好的,但是什麼是解決方案,我可以強制下來的字符串,或者我應該做一個ajax調用服務器(到不同的路線),將數據提供給圖表或註冊助手或只是擺脫模板引擎並使用一些前端框架或庫?上述解決方案即使使用html也不起作用。 – elwindly

0

好,我已經想通了!

var rawData = "{{{lab}}}"; 
var pollData = rawData.split(","); 

,現在我可以把它作爲一個字符串數組