2012-11-14 10 views
5

जब कोई दस्तावेज़ बदलता है तो उल्का फिर से दृश्य प्रस्तुत करता है।कुछ फ़ील्ड बदलते समय उल्का करने के लिए उल्का

Template.story.data = function() { 
    var storyID = Session.get('storyID'); 
    var story = Stories.findOne({ 
    _id: storyID 
    }) 

    if (!story) 
    return; 

    return story; 
}; 

कहानी टेम्पलेट के लिए एक टेम्पलेट सहायक है, कहानियां दस्तावेज़ से एक कहानी प्राप्त करना।

जब story.title परिवर्तन जैसे फ़ील्ड मैं टेम्पलेट को फिर से प्रस्तुत करना चाहता हूं। लेकिन जब story.viewingusers परिवर्तन जैसे फ़ील्ड मैं टेम्पलेट को फिर से प्रस्तुत नहीं करना चाहता हूं। वैसे भी ऐसा करने के लिए?

प्रश्न को ट्रिगर करने वाली विशिष्ट समस्या को उन फ़ील्ड को प्रकाशित न करने के लिए प्रकाशित फ़ंक्शन को सेट करके हल किया गया था। हालांकि यह समाधान प्रत्येक उपयोग के लिए काम नहीं करता है और एक सामान्य समाधान की आवश्यकता होती है।

+0

कोशिश टेम्पलेट की रक्षा? – crapthings

+0

यह अभी भी सही डेटा सही है? क्या कोई कारण नहीं है कि आप टेम्पलेट को कई बार प्रस्तुत करना चाहते हैं (ऑप्टिमाइज़ेशन से परे?) –

+0

@TomColeman डेटा सही है, लेकिन मेरे पास एक इंटरफ़ेस तत्व है जो पॉपओवर के रूप में दिखाई देता है। प्रत्येक बार जब तत्व पुन: प्रस्तुत किया जाता है तो पॉपओवर नष्ट हो जाता है। यह वास्तव में कष्टप्रद है। – Harry

उत्तर

3

जो आप खोज रहे हैं वह #constant टेम्पलेट सहायक है।

मैं आपके मामले में क्या करूँगा एक स्थिर ब्लॉक में पॉपओवर मार्कअप को लपेटता है, फिर उस ब्लॉक में सामग्री को story.rendered फ़ंक्शन में मैन्युअल रूप से अपडेट करें।

तो कुछ इस तरह:

story.html:

<template name="story"> 
    ... 
    {{#constant}} 
     <!-- Popover markup here --> 
    {{/constant}} 
    ... 
</template> 

client.js:

Template.story.rendered = function(){ 
    //Update logic here 
} 
+0

यह एक विकल्प है, हालांकि यह उल्का शैली तर्क को खंडित करता है और बहुत जटिलता को जोड़ता है, इसलिए मुझे उम्मीद है कि इस मुद्दे को और अधिक सीधे संबोधित किया जाए। – Harry

+0

हम्म मैं उल्का शैली तर्क के बारे में निश्चित नहीं हूं, लेकिन मैंने इस तकनीक को उल्का में 'पार्टियों' उदाहरण से सीखा। आपको उस उदाहरण के माध्यम से देखना चाहिए, यह तर्क के चारों ओर एक ऑटोरन लपेटता है ताकि अद्यतन तर्क 'उल्का शैली में' भी अमान्य हो। –

+0

वैसे यह आपको 'Meteor.render' का उपयोग करने या डोम मैनिपुलेशन के साथ अपना HTML बनाने के लिए मजबूर करता है। इनमें से कोई भी महान नहीं है। मैंने पार्टियों के उदाहरण की जांच की और यही वह है जो वे करते हैं। यह काम। लेकिन यह धीमा प्रतिपादन करता है, टेम्पलेट्स के बजाय जावास्क्रिप्ट में टेम्पलेट कोड डालता है, और आपको अपने टेम्पलेट्स को और टुकड़ों में तोड़ने के लिए मजबूर करता है। सभी 3 चीजें जटिलता जोड़ती हैं और चीजों को बनाए रखने के लिए कठिन बनाती हैं। लेकिन मेरा मतलब है SO के संदर्भ में यह एक उत्कृष्ट और सहायक उत्तर है, धन्यवाद। – Harry