2013-03-06 5 views
8

ठीक है, मुझे पता है कि यह बहुत ही बुनियादी है, लेकिन मैं इसे 2 दिनों तक देख रहा हूं और यह नहीं देख सकता कि यह क्यों काम नहीं कर रहा है। मैं हैंडलबार्स IF हेल्पर्स का सशर्त रूप से टेम्पलेट प्रस्तुत करने के लिए उपयोग कर रहा हूं।#if हैंडलबार में स्टेटमेंट

<head> 
    <title>flash</title> 
</head> 

<body> 
    {{#if isTrue}} 
     {{> hello}} 
    {{else}} 
     {{> goodbye}} 
    {{/if}} 
</body> 

<template name="hello"> 
    <h1>Hello!</h1> 
</template> 

<template name="goodbye"> 
    <h1>Goodbye!</h1> 
</template> 

यहाँ सरल कॉफी फ़ाइल है::

isTrue = true 

मैं {{> हैलो}} टेम्पलेट रेंडर करने के लिए उम्मीद है, लेकिन कोई किस्मत

यहाँ एचटीएमएल है। मुझे बस {{> अलविदा}} टेम्पलेट मिलता है। यह अजीब है क्योंकि मेरे पास अन्य परियोजनाएं हैं जहां मैंने इसे सफलतापूर्वक किया है। मुझे यहां कुछ स्पष्ट याद आना चाहिए।

उत्तर

20

isTrue परिवर्तनीय काम करने के लिए एक टेम्पलेट में होना चाहिए। तो, एक टेम्पलेट में शरीर सामग्री डाल:

<body> 
    {{> body}} 
</body> 

<template name="body"> 
    {{#if isTrue}} 
     {{> hello}} 
    {{else}} 
     {{> goodbye}} 
    {{/if}} 
</template> 

और फिर आप isTrue इस तरह परिभाषित कर सकते हैं:

Template.body.helpers 
    isTrue: -> true 
+0

हाय जोएर्ड की तरह कर सकते हैं और यह काम किया। धन्यवाद। अजीब बात यह है कि मेरे पास नियमित एचटीएमएल बॉडी के अंदर हेल्पर्स का उपयोग करके एक और प्रोजेक्ट है और यह ठीक काम करता है। बहुत अजीब, लेकिन इस फिक्स ने मुझे ट्रैक पर वापस लाया। एक बार फिर धन्यवाद। – ppedrazzi

5

नोट:

Template.body.isTrue = -> true 

अब मान्य नहीं है।

नई वाक्य रचना इस तरह दिखता है:

Template.test.helpers({ 
 
    'isTrue': function(){ 
 
    return true; 
 
    } 
 
});

यह अभी भी काम करना चाहिए लेकिन यदि आप अपने कंसोल खोलें यह आप सिंटैक्स के बारे में एक चेतावनी दे देंगे। , मैं लागू कर रहे

1
उल्का साथ

1.2.0.2 आप इसे इस

Template.hello.helpers({ 
    isTrue() { return true } 
}); 
संबंधित मुद्दे