2011-10-20 12 views
5

मैं जेड को स्वचालित रूप से मेरे लिए यूआरएल उत्पन्न करने की कोशिश कर रहा हूं:node.js जेड टेम्पलेट - कस्टम वाक्यविन्यास और प्रतिस्थापन?

इसलिए यदि मेरे पास कोई उपयोगकर्ता लिंक है:

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

मैं इसे किसी चीज़ से प्रतिस्थापित करने में सक्षम होना चाहता हूं (काल्पनिक वाक्यविन्यास):

.userLink 
    userLink(#{user}) 

वैसे भी ऐसा करने के लिए?

धन्यवाद

संपादित करें: ठीक है मुझे यह मिला:

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

mixin userLink("Bob") 

ऐसा लगता है कि यह काम करेगा।

+0

अच्छा! खुशी है कि आप glitches बाहर काम किया है। –

उत्तर

3

अद्यतन:

यहाँ जेड mixins का उपयोग कर एक संस्करण है। अफसोस की बात है, मुझे "ए" टैग की संश्लेषित विशेषताओं सूची में "उपयोगकर्ता" चर नहीं मिल रहा है।

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

मैं क्लाइंट पक्ष पर जेडवु और जेड का उपयोग कर रहा हूं, इसलिए यह वास्तव में मेरे लिए एक अच्छा विकल्प नहीं है। मैं जेएस में भी बजाए जाने के बजाए जेड में टेम्पलेटिंग सामान रखना चाहता हूं। – Harry

+0

उह, अगर "templating सामान" कार्यों में शामिल है, यह नहीं हो रहा है। कोड डेटा तैयार करता है, जेड इसे HTML में थूकता है। –

+0

क्या मिक्तिष्क का मुद्दा यह नहीं है? आप मिक्सिन – Harry