基本的に、express.js のローカル変数で指定されたリンクを含むサイト全体のナビゲーション バーを作成したいと考えています。
そこで、ページに含めたいリンクのリストを作成します。
class NavigationLink
constructor: (@title,@url) ->
app.use (req,res,next) ->
res.locals.navigationLinks = [
new NavigationLink "About", "/about"
new NavigationLink "Projects", "/projects"
new NavigationLink "Skills", "/skills"
new NavigationLink "Contact", "/contact"
]
next()
次に、ホームページにアクセスした場合:
app.get '/', (req,res) ->
res.render('about')
Jade は、このレイアウト ファイルをレンダリングしようとします。これは、navigationLinks 配列をループし、それぞれに対してレンダリングすることになっています。
!!! 5
html
include header
body
.container
.row
.span3
ul.nav.nav-tabs.nav-stacked
for navigationLink in navigationLinks
include navigationLink
.span9
block content
ただし、「navigationLinks is not defined」という参照エラーが表示されます。これは、ローカルが通過していないことを意味すると思います。問題を解決する方法についてのアドバイス、またはこの種のことにより適した別の設計パラダイム (サイトのすべてのページでのリンクの動的な構築) についてアドバイスをいただければ幸いです。ありがとう!