2014-07-23 3 views
9

मैं एक साधारण स्थिर वेब साइट के लिए assemble.io उपयोग कर रहा हूँ लेकिन {{title}} टैग के साथ मुद्दों कर रहा हूँ का उपयोग कर एक से अधिक डेटा/json फ़ाइलों का उपयोग कर। इस मुद्दे का एक अवलोकन अवलोकन है।संदर्भ {{title}} मास्टर टेम्पलेट में जब इकट्ठा

यहाँ मेरी layout.hbs है:

foo1.json

{ 
    "title": "Hello world I am title 1" 
} 

foo2.json

:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>{{title}}</title> 
    </head> 
    <body> 
    <!-- the body tag is used to "pull in" content from pages --> 
    {{> body }} 
    </body> 
</html> 

मैं डेटा के लिए 2 json फ़ाइलें

{ 
    "title": "I am a different title" 
} 

और मैं 2 पृष्ठों है:

foo1.hbs

{{#foo1 }} 
{{> module1 }} 
{{> module2 }} 
{{> module3 }} 
{{/foo1 }} 

foo2.hbs

{{#foo2 }} 
{{> module1 }} 
{{> module2 }} 
{{> module3 }} 
{{/foo2 }} 

मेरे gruntfile.js टुकड़ा:

options: { 
    layout: "src/responsive/layouts/layout.hbs", 
    partials: 'src/responsive/modules/**/*.hbs', 
    data: 'src/responsive/data/**/*.json', 
    flatten: false 
}, 
pages: { 
    expand: true, 
    cwd: 'src/responsive/pages', 
    src: '**/*.hbs', 
    dest: 'src/' 
} 

जब मैं चलाने के 'असंतोष का शब्द इकट्ठा' मेरे पास कोई पृष्ठ का शीर्षक मिलता है। मैं इस संदर्भ के साथ कुछ है जैसे मैं layout.hbs में {{title}} बदल होने के लिए लगता है {{foo1.title}} या {{foo2.title}} यह काम करता है, लेकिन फिर दोनों पृष्ठों इसी शीर्षक मिल वे इस टेम्पलेट का हिस्सा के रूप में।

मैं कैसे layout.hbs में {{title}} के संदर्भ सभी json फ़ाइलों के लिए काम में पारित किया जा रहा बना सकते हैं?

+0

मैंने {{page.title}} की कोशिश की है लेकिन फिर दोनों ने foo1.json – Adi

+0

से शीर्षक वापस कर दिया है। मैंने {{this.page.title}} भी कोशिश की है, लेकिन फिर दोनों परिणाम foo1.json से शीर्षक लौटाते हैं। संकलित पृष्ठों को इकट्ठा करते समय, क्या यह सभी जेएसओ फाइलों को सभी कॉन्सट का उपयोग करता है और प्रत्येक पृष्ठ के लिए उनका उपयोग करता है? मैंने सोचा कि पृष्ठ और जेसन के बीच 1-से-1 संबंध था यदि उनके पास समान नाम था? – Adi

+1

आप के बारे में '{{page.title}}' यकीन है? यह आपके उदाहरण के साथ मेरे लिए सही तरीके से काम करता है। – raidendev

उत्तर

3

@Adi मैं सेटअप एक repo here संरचना है कि आप वर्णित हैं।

मैं सिर्फ this code in layout.hbs बदल गया है और यह उम्मीद के रूप में काम कर रहा है।

<!DOCTYPE html> 
<html> 
    <head> 
    <title>{{page.title}}</title> 
    </head> 
    <body> 
    <!-- the body tag is used to "pull in" content from pages --> 
    {{> body }} 
    </body> 
</html> 

यदि आपके पास रेपो है तो हम देख सकते हैं, इससे समस्या को ट्रैक करने में मदद मिल सकती है।

उम्मीद है कि इससे मदद मिलती है।

+0

आप यहां रेपो पा सकते हैं: https://github.com/adrianjacob/assemble-546 यदि आप देखते हैं src/index.html और src/insurance/index.html आप देख सकते हैं कि वे 'ग्रंट इकट्ठा' चलाने के बाद एक ही शीर्षक साझा करते हैं।हालांकि, यदि आप जेसन फाइलों को देखते हैं तो उनके पास अलग-अलग खिताब होना चाहिए। चीयर्स, ए – Adi

+0

अभी, इकट्ठा करने के लिए केवल फाइलों के बेसनाम का उपयोग करें। तो दूसरी 'इंडेक्स' फ़ाइल पहली 'इंडेक्स' फ़ाइल में डेटा को ओवरराइट करती है। साथ ही, आपके पास 'index.json' के बजाय बीमा फ़ोल्डर में 'foo.json' है। 'बीमा/index.hbs' को 'बीमा/foo.hbs' में बदलने का प्रयास करें और आपको शीर्षक परिवर्तन देखना चाहिए। – doowb

+0

तो यदि आप index.html और बीमा/index.html प्रस्तुत करना चाहते हैं तो आप क्या करेंगे? फ़ोल्डरों के आधार पर मिलान करने की कोई योजना है? – Adi

संबंधित मुद्दे