2013-03-12 56 views
5

我正在使用我的節點應用程序從API中檢索某些數據,並希望在視圖中顯示該數據並允許用戶在該處更改該數據。我打電話給API,並得到一個JSON響應,我想傳遞給視圖。下面是我在做什麼:將數據傳遞到node + express中查看

var query = 'SELECT Id, OwnerId, ActivityDateTime, EndDateTime, WhatId, WhoId, Subject FROM Event WHERE OwnerId = \'' + user.userId + '\'' ; 
    // execute the query and get response 
    ... 
    ... 
    var ev = resp.records; 
    res.render('index.html', {eventData : ev}); 

問題是,當我再想我認爲使用這些數據,我得到一個未定義的錯誤。

如果我做的:

<div id='Subject'>#{eventData.Subject}</div> 

我得到一個打印出來#{的} eventData.Subject

試圖在JS返回一個未定義的錯誤使用數據:

<script type="text/javascript"> 
    var mydata = #{eventData}; 
    </script> 

經過一番搜索之後,我發現一則帖子建議先將其串化:

var mydata = !{JSON.stringify(eventData)}; 
    console.log(mydata); 

在這裏,我得到一個語法錯誤「語法錯誤:缺少:物業編號後」

我敢肯定,我失去了一些東西基本和不能爲我的生命數字出來。我發現很多文章的例子解釋瞭如何在Jade中做到這一點,但我不想使用Jade,並使用文章中的建議導致「undefined」或「illegal character」錯誤。

我完全沒有想法......幫忙嗎? Tnx

+3

您使用的是什麼模板系統? – 2013-03-12 07:49:08

+0

我使用自定義處理程序:app.register({ 編譯:功能(STR,期權){ 恢復功能(當地人){ 返回海峽; };} } 'HTML'); – 2013-03-12 16:39:34

回答

3

Jonathan Ong的評論讓我走上了正軌。由於我使用html的客戶處理程序,因此它不會解釋任何變量。

我切換到使用EJS:

 // view engine ejs 
    app.set('view engine', 'ejs'); 
    app.register('.html', require('ejs')); 

,並使用以下佔位符:

<%= eventData.Subject %> 

這實際上使我的數據顯示出來。感謝所有的評論和答案! Michael

+1

你應該接受你的答案,這會對尋找類似問題的人有幫助。 – booyaa 2013-03-28 10:38:06

相關問題