Tuesday, 15 May 2012

javascript - Passing an _id and a search query in the string -


एक परीक्षण परियोजना के लिए उल्का का उपयोग करना नमूना टोडो ऐप के साथ खेलते समय आईडी और एक खोज पैरामीटर कैसे पास किया जाए, इसका पता नहीं लगाया जा सकता है।

फिलहाल, मेरे पास लोहे के रूटर में है:

  this.route ('टीम', {पथ: '/ टीम /: _ आईडी', onBeforeAction: function () {This.todosHandle = Meteor.subscribe ('todos', this.params._id); // फिर पाठ के लिए mongoDB फ़िल्टर}}};  

बात यह है, मैं भी todos की खोज करने के लिए एक वैकल्पिक search पैरामीटर पास करना चाहता हूं। तो पथ: '/ टीम /: _ आईडी (/ खोज /: खोज) जैसी कोई चीज़?'

कोई भी विचार यह कैसे करें?

अपने स्पष्टीकरण से, ऐसा लगता है कि आप सावधानी से नियंत्रण करना चाहते हैं कि वास्तव में कौन सी दस्तावेज़ वास्तव में क्लाइंट में प्रकाशित किए गए हैं , उन सभी को प्रकाशित करने और क्लाइंट पर अपने परिणाम सेट को कम करने की बजाय। इस मामले में, मैं सबसे पहले इस तरह से सर्वर पर प्रकाशन को परिभाषित करने का सुझाव देता हूं:

  Meteor.publish ('todosByTeamIdAndSearch', फ़ंक्शन (todoTeamId, searchParameter) {var todosCursor = null; // चेक टीम आईडी और खोज के लिए Parameter अस्तित्व और सेट करें // todoscursor तदनुसार। यदि कोई भी मौजूद नहीं है, तो खाली कर्सर वापस लौटाएं, जबकि // पैरामीटर अस्तित्व के आधार पर दस्तावेजों के सबसेट को लौटाए। Todoscursor = Todos.find ({teamId: todoTeamId, ... }); // पास पैरामीटर तदनुसार todos कर्सर वापस;});   

अधिक बारीक प्रकाशनों को परिभाषित करने के बारे में और अधिक पढ़ें, चेक आउट करें।

एक परिभाषित ऊपर की तरह एक प्रकाशन के साथ, आप फिर से अपने मार्ग को सेटअप कर सकते हैं:

  राउटर.रुउट ('/ टीम /: _ आईडी / खोज /: खोज', {नाम: 'टीम', इंतजार करें: फ़ंक्शन () {उल्लेखित करें Meteor.subscribe ('todosByTeamIdAndSearch', this.params ._id, this.params.search);}, डेटा: फ़ंक्शन () {if (this.ready ()) {// अपने Todos संग्रह तक पहुंचें जैसे आप सामान्य रूप से var todos = Todos.find ({});}} });  

जैसा कि आप उदाहरण की परिभाषा से देख सकते हैं, आप मार्ग के लिए पथ को ठीक से परिभाषित कर सकते हैं, जैसे आप इसे कॉल में सीधे Router.route (देखना चाहते हैं) ) फ़ंक्शन और सीधे waitOn मार्ग विकल्प में की तरह पारित मापदंडों का उपयोग करें चूंकि प्रकाशन को परिभाषित किया गया है जैसे मैंने सुझाव दिया है, आप बस उन रूट पैरामीटर को Meteor.subscribe () फ़ंक्शन के पास पारित कर सकते हैं। इसके बाद, डेटा मार्ग विकल्प में, एक बार आपने यह जाँच लिया है कि आपकी सदस्यता तैयार है, तो आप टोडोस संग्रह को सामान्य की तरह एक्सेस कर सकते हैं, न कि परिणाम सेट की कोई और संकुचित हो अगर आप ऐसा करने की आवश्यकता नहीं है।

अपने मार्गों को कॉन्फ़िगर करने के तरीके के बारे में अधिक जानने के लिए, इन दोनों लिंक को बाहर की जाँच करें: और


No comments:

Post a Comment