2014-01-21 31 views
7

我想從路由處理程序傳遞一個變量給javascript文件。將一個變量從玉石傳遞給javascript

,其獲取主頁快遞路線爲:

exports.home = function(req, res){ 

    var _ajaxData = [ ["#collections","collections", "Collections"], 
         ["#candidates","candidates", "Candidates"], 
         ["#entries","entriess", "Entries"], 
         ["#exits","exits", "Exits"] 
        ]; 

    res.render('home/home', { title: 'Welcome to My Web', _ajaxData: _ajaxData}); 
}; 

我的玉文件如下所示:

extends ../layout/base 

block content 
     each item in _ajaxData 
     div(id= item[0]).col-md-6 
       h3.panel-title= title 
      .panel-body 
       | Loading content... 

    script(src='js/home.js') 

和內容在home.js看起來像用ajax加載如下:

var ajaxData = JSON.stringify('!{_ajaxData}'); 
console.log(ajaxData); 
// Further processing here 

問題:控制檯打印:

"!{_ajaxData}" 

其中我期待獲得傳遞給javascript的完整數組。

欣賞任何見解

+0

FYI:我意識到,瀏覽器獲取的家.js沒有任何明示的處理。但是,我仍然很想知道是否有更好的方法來做到這一點。 – Kiran

回答

21

添加到您的玉文件

script(type='text/javascript')             
    var local_data =!{JSON.stringify(data)}; 
script(src='javascripts/myScript.js') 

所有的數據現在應該在local_data供您使用在myScript.js

+1

感謝小修改:'script(type ='text/javascript') | var local_data =!{JSON.stringify(data)}; script(src ='javascripts/myScript.js')' – Kiran

+0

爲什麼要改變? – bzupnick

+0

否則,它將變成 Kiran