इसी प्रकार यहां सवाल:
टेम्पलेट जीवन चक्र कार्यों में (onCreated, onRendered ...) this
Template.instance()
तो this.data
के बराबर है:
Difference between Template.instance() and this
बात को एहसास है कि है उस समय Template.instance().data
जैसा ही है!
एक सहायक या घटना में, this
वर्तमान डेटा संदर्भ है।
आप किसी टेम्पलेट को डेटा पास हैं, तो टेम्पलेट नए डेटा के साथ फिर से रेंडर किया जाएगा: डाटा संदर्भ अगर नदी के ऊपर अपने डेटा परिवर्तन समय के साथ बदल सकते हैं:
तो, एक महत्वपूर्ण बात यहाँ ध्यान दें । नया डेटा = नया डेटा संदर्भ।
तो आप की तरह कुछ करना है, तो:
Template.example.onCreated(function() {
this.data.myKey = "my example data set on template creation"; //WRONG!
// or equivalently:
Template.instance().data.myOtherKey = "another key"; //WRONG!
})
अच्छी तरह से, यह डेटा this
(अर्थात जिसे संदर्भ) अपने सहायक (this.myKey
), लेकिन केवल तब तक नदी के ऊपर डेटा परिवर्तित नहीं होता के रूप में के तहत हो सकता है।
जैसे ही अपस्ट्रीम डेटा बदलता है, this
नया डेटा संदर्भ होगा, और इसमें आपका अतिरिक्त डेटा नहीं होगा।
तो, सारांश में:
आप onCreated
या onRendered
में अपने टेम्पलेट के लिए संदर्भ जोड़ना, सुनिश्चित करें कि आप मौजूदा डेटा संदर्भ के लिए यह बाँध नहीं करते हैं, लेकिन खाका करने के लिए की जरूरत है।उदाहरण()
आपको क्या करना चाहिए:
Template.example.onCreated(function() {
this.myKey = "my example data set on template creation";
// or equivalently:
Template.instance().myOtherKey = "another key";
})
और आप के माध्यम से सहायक में इस डेटा और घटनाओं का उपयोग कर सकते
Template.instance().myKey
'Template.instance' (इस समय) ही उपयोगी है सहायकों में अन्य स्थानों (जैसे 'निर्मित' कॉलबैक, 'रेंडर' कॉलबैक इत्यादि) आप टेम्पलेट इंस्टेंस को अन्य तरीकों से प्राप्त कर सकते हैं, लेकिन इन मामलों में आप 'टेम्पलेट.inस्टेंस' का उपयोग भी कर सकते हैं यदि आप चाहें। –
नोट जैसा कि मैंने नीचे दिए गए मेरे उत्तर में लिखा था कि जब आप Template.instance() डेटा तक पहुंच सकते हैं, तो आपको इस संदर्भ पर अपना डेटा नहीं रखना चाहिए, या अगले टेम्पलेट रेंडर पर यह गायब होने का जोखिम नहीं है। – MrE