2012-04-17 39 views
1

this applicationのコードを操作し、views/layout.jadeファイルのサイドバーに配置しました。サイドバーでは、私は、ビュー/ index.jadeからタグを処理するためのコードを貼り付け/切り取りました:参照エラー:「タグが定義されていません」

ul.tags 
     each tag in tags 
      a(href='/tag/' + tag._id.toHexString()) 
       li.tag= tag.name 

タグ私がクリックしたときしかし、彼らが必要としてデシベルからフェッチされ、サイドバー内でレンダリング(タグでタグ付けされたすべての記事で新しいページを表示する必要があります)そのうちの一つに、私は、エラーメッセージが表示されます。

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でホーム(index.jade)だけでなく、すべてのページにそれを表示できるようにする必要があります。

私は本当にいくつかの助けに感謝します!

答えて

2

は今、あなたが持っている:

res.render('tags/detail', { title: tag.name, blogs: blogs, tagList: tags, dateFormatter: dateFormatter }); 

しかし、あなたはeach tag in tagsを行っている場合、あなたは

{ title: tag.name, blogs: blogs, tags: tags, dateFormatter: dateFormatter } 
+0

のようなものを持っている必要があり、最後に、それはあなたのおかげで動作します、ありがとうございました。あなたはできるだけ早くあなたの報酬を得るでしょう(17時間)。 :) – holyredbeard

+1

歓迎です;)!しかし、すべてのページでタグを照会しないために、ヘルパーを使用する必要があります。ここでいくつかの情報を見つけることができます:http://dailyjs.com/2011/01/03/node-tutorial-8/。特定のヘルパーのタグを取得し、レイアウトでこのヘルパーを呼び出すことができます。 – Tronix117

+0

ありがとう、私は今それを実装しようとしています。 – holyredbeard

関連する問題