2011-10-20 9 views
5

私は自動的に私のためのURLを生成するためにヒスイを取得しようとしている:node.js jadeテンプレート - カスタム構文と置換え?

私はこのようなユーザーのリンクがあればそう:

.userLink 
    a(href="/#{user}") #{user} 

を私は(仮想のようなものと交換することができるようにしたいです構文):

.userLink 
    userLink(#{user}) 

とにかくこれを行うには?

おかげ

編集:OKAY、私はそれを得た:それは動作しますように

mixin userLink(user) 
    a(href="/" + user)= user 

mixin userLink("Bob") 

思えます。

+0

ニース!あなたは不具合を解決してうれしいです。 –

答えて

3

更新日:

ここにはjade mixinsを使用したバージョンがあります。残念ながら、 "a"タグのカッコで囲まれた属性リスト内で "user"変数を見つけることはできません。

mixin userLink(user) 
    a(href="/" + user)= user 

mixin userLink("Bob") 
mixin userLink("Alice") 
mixin userLink("Cooper") 

このHTML

<a href="/undefined"></a> Bob 
<a href="/undefined"></a> Alice 
<a href="/undefined"></a> Cooper 

ちょうどオブジェクトあなたの地元の人々にヘルパー関数を入れてください、あなたのヒスイのテンプレートに続いて、テンプレート

locals = {userLink: function(userName) { return "<a href=....."}} 

jade.render('myview', {locals: locals}) 

から呼び出し生成:

= userLink(user) 

おそらくdynamicHelper functionを登録してみることもできます。

+0

私はjadevuとjadeをクライアント側で使用しているので、それは本当に良い選択肢ではありません。私はまた、JSの中にそれを持っているのではなく、玉の中にテンプレートのものを残したいと思っています。 – Harry

+0

「テンプレートのもの」に関数が含まれていると、それは起こっていません。コードはデータを準備し、jadeはHTMLにデータを吐き出します。 –

+0

それはミックスインのポイントですか?どのようにミックスインを使用しますか – Harry

関連する問題