मेरी पहली घटना पर मैं एक एमबॉक्स संवाद खोलूंगा। एमबॉक्स बूटबॉक्स के लिए एक प्रकार का विस्तार है, जो एक मॉडल दिखाने के लिए है। मुझे मॉडेल सामग्री के रूप में एक और टेम्पलेट का उपयोग करने के लिए mbox की आवश्यकता है।बंद मोडल जो किसी अन्य ईवेंट फ़ंक्शन में बनाया गया है
तो मोडल में createElement-Template की सामग्री से लोड किया जाएगा। यदि उपयोगकर्ता ने कुछ इनपुट परिवर्तन किए हैं तो मोडल बंद होना चाहिए। इसलिए modal("hide")
फ़ंक्शन है। लेकिन bbox
को पहले टेम्पलेट-ईवेंट में सेट किया गया है और मॉडल का समापन दूसरे टेम्पलेट-ईवेंट में किया जाएगा, मुझे मोडल को बंद करने में समस्याएं आईं।
घटनाओं
Template.main.events({
'submit form': function(event, template) {
event.preventDefault();
var bbox = mbox.dialog({
title: 'title',
message: Template.createElement
});
}
});
Template.createElement.events({
'change input': function(event, template) {
bbox.modal('hide');
}
});
अद्यतन
ऊपर समस्या एक वैश्विक वर के साथ काम करता है। इसके लिए एडम के लिए धन्यवाद।
लेकिन मैं एक उल्का पैकेज में एक मॉडल को नष्ट नहीं करना चाहता, जिसे पैकेज द्वारा बनाया गया था। मैंने वैश्विक वैर का उपयोग करने की कोशिश की और मैंने api.export()
का उपयोग करने की कोशिश की। लेकिन फिर भी यह काम नहीं करता है। मैंने सत्रों के साथ काम करने की भी कोशिश की।
पैकेज-ग्राफ/lib/ग्राहक/graph.js
var bbox;
CanvasManager = {
onShowAddToolTip (element) {
bbox = mbox.dialog({ // <-- Create Modal
title: "Title",
message: Template.search, // <-- Loading Template search with just one input field with typeahead
});
},
}
CanvasManger.create(...);
पैकेज-ग्राफ/lib/package.js
api.export('bbox');
दूसरा पैकेज एक Typeahead-खोज बॉक्स प्रदान (sergeyt:typeahead
)। पहले पैकेज में मोडल बना कर, खाका मोडल (helloludger:mbox
) में लोड किया जाएगा। अब उपयोगकर्ता Typeahead के माध्यम से खोज और किसी आइटम का चयन कर सकते हैं। चयन के बाद मॉडल `मोडल ('छिपाएं') द्वारा नष्ट कर दिया जाना चाहिए।
पैकेज-खोज/lib/ग्राहक/events.js
Template.searchMain.onRendered(function() {
Meteor.typeahead.inject();
});
पैकेज-खोज/lib/ग्राहक/helper.js
Template.search.helpers({ // <-- getting the data for the input typeahead
searchData: function() {
return [
{
name: 'cat1',
valueKey: 'title',
displayKey: 'title',
header: '<h3 class="category-name">Category</h3>',
template: 'searchResults',
local: function() {
return Collection.find().fetch();
}
}
]
},
selected: function(event, suggestion) { // <-- by selecting an item, I can process the data and remove the modal
// do something
bbox.modal('hide'); // <!-- destroy modal
return;
}
}
});
क्या आप HTML पोस्ट भी कर सकते हैं? उल्का में आप Template.instance() के माध्यम से टेम्पलेट आवृत्ति पर राज्य वस्तुओं को साझा और एक्सेस कर सकते हैं। –
यदि आप बॉक्स के सामने var को हटाते हैं तो आप इसे फ़ाइलों में एक्सेस करने में सक्षम होना चाहिए। Var bbox बदलने का प्रयास करें; bbox = null; –