1
我在this application操縱的代碼,並把在側邊欄的意見/ layout.jade文件。在側欄中我剪/粘貼代碼從視圖處理標籤/ index.jade:參考錯誤:「沒有定義標籤」
ul.tags
each tag in tags
a(href='/tag/' + tag._id.toHexString())
li.tag= tag.name
的標籤是從DB牽強,因爲他們應該,並且在側邊欄呈現出來,但是當我點擊對他們中的一個(這應該顯示標籤與標籤的所有帖子的新頁)我得到一個錯誤信息:
500 ReferenceError: ... layout.jade:10 8| p 9| ul.tags > 10| each tag in tags 11|
a(href='/tag/' + tag._id.toHexString()) 12| li.tag= tag.name tags is not defined
這裏有被稱爲在文件「tagcontroller.js」的功能(這是處理用於標籤的邏輯):
app.get('/tag/:id', function(req, res){
model.Tag.findById(req.params.id, function (err, tag){
if (err) {
console.log(err);
// do something
}
var query = blogModel.BlogPost.find({ _id: { $in : tag.blogs } });
query.where('date').lte(new Date());
query.exec(function (err, blogs) {
if (err) {
console.log(err);
// do something
}
var query = model.Tag.find({});
query.exec(function (err, tags) {
if (err) {
console.log(err);
// do something
}
res.render('tags/detail', { title: tag.name, blogs: blogs, tagList: tags, dateFormatter: dateFormatter });
});
});
});
});
如果我把代碼放回views/index.jade,一切工作正常。但我需要在layout.jade中將其顯示在每個頁面上,而不僅僅是Home(index.jade)。
我真的很感謝一些幫助!
非常感謝你,最後它工作的感謝。你會盡快得到你的獎勵(17小時)。 :) – holyredbeard 2012-04-19 18:37:18
不客氣;)!但是你應該使用幫助器,以便不在每個頁面中查詢標籤。你可以在這裏找到一些信息:http://dailyjs.com/2011/01/03/node-tutorial-8/,這樣你就可以在特定的助手中檢索標籤,並在佈局中調用這個助手。 – Tronix117 2012-04-19 18:47:11
謝謝,我即將實施它。 – holyredbeard 2012-04-19 20:08:51