2013-02-26 148 views
6

जेड & एक्सप्रेस के साथ काम कर रहा है।जेड

'#{value.users}' एक सरणी है।

'#{user.username}' एक स्ट्रिंग है।

if '#{value.users}'.indexOf('#{user.username}')

करने के लिए सही है, तो मैं सामान का एक गुच्छा प्रदर्शित कोशिश कर रहा है, अन्यथा, गाया नहीं किया जाना चाहिए।

जेड सिंटैक्स के साथ ठीक है, लेकिन जब भी #{value.users}'.indexOf('#{user.username}') गलत है, तो अगर कथन के भीतर सामग्री प्रदान की जा रही है।

उदाहरण के लिए, यदि user.username = bob, और value.users = ['tim', 'billy'], if कथन गुजर रहा है, जब यह स्पष्ट रूप से नहीं होना चाहिए।

मैं क्या गलत कर रहा हूं?

+0

जांचें कि '[' tim ',' billy ']। IndexOf (' bob ') 'उपज:' -1'। एक झूठा मूल्य नहीं (0 0') – Bergi

उत्तर

5

मैं जेड से परिचित नहीं हूं, लेकिन आपको इसके खिलाफ परीक्षण करने की आवश्यकता नहीं होगी! = -1 या == 1?

str.indexOf('#{user.username}') ! = -1 

या जब से आप किसी सरणी के खिलाफ परीक्षण कर रहे हैं, तो कुछ भी है।

array.toString().indexOf('#{user.username}') != -1 

अद्यतन: ES6 के आगमन के साथ, मैं एक छोटे से

array.includes('#{user.username}') // returns true or false 
str.includes('#{user.username}') // returns true or false 
+0

'array.toString() 'पूरी तरह से कोड के अर्थ को बदलता है। – Bergi

6

नीचे चाहिए यह #{value.users.indexOf(user.username)} नहीं अद्यतन?

#{} के अंदर कोई भी जेएस आदेश निष्पादित किया गया है। आप एक ही '#{}'

अंदर अपने पूरे अभिव्यक्ति फिट करने के लिए if '#{value.users}'.indexOf('#{user.username}')'#{value.users}' कह एक स्ट्रिंग में धारावाहिक की जा रही है और जब .indexOf() का उपयोग कर इसे स्ट्रिंग के भीतर खोज किए जाने के, बल्कि मूल सरणी से करके सक्षम होना चाहिए।

यदि आप इसे किसी कथन में उपयोग कर रहे हैं, तो सीधे जेएस को निष्पादित क्यों न करें? उदाहरण के लिए।

- if (value.users.indexOf(user.username)) 
    p some jade 
- else 
    p alternate jade 

https://github.com/visionmedia/jade#a8

वैकल्पिक रूप से, आप अंडरस्कोर पुस्तकालय इस्तेमाल कर सकते हैं।

http://underscorejs.org/#indexOf

आप जेड टेम्पलेट्स के अंदर इसका इस्तेमाल करना चाहते हैं, की आवश्यकता होती है करने के लिए सुनिश्चित() उसे अपने ऐप्लिकेशन या अनुरोध स्थानीय लोगों में हो।

+0

@karaxuna धन्यवाद –