खोज…
आयरन राउटर के साथ रूटिंग
आयरन राउटर स्थापित करें
टर्मिनल से:
meteor add iron:router
मूल विन्यास
Router.configure({
//Any template in your routes will render to the {{> yield}} you put inside your layout template
layoutTemplate: 'layout',
loadingTemplate: 'loading'
});
बिना डेटा के रेंडर
//this is equal to home page
Router.route('/', function (){
this.render('home')
});
Router.route('/some-route', function () {
this.render('template-name');
});
डेटा और मापदंडों के साथ रेंडर
Router.route('/items/:_id', function () {
this.render('itemPage', {
data: function() {
return Items.findOne({_id: this.params._id})
}
});
});
एक माध्यमिक उपज के लिए प्रस्तुत करना
Router.route('/one-route/route', function() {
//template 'oneTemplate' has {{> yield 'secondary'}} in HTML
this.render('oneTemplate');
//this yields to the secondary place
this.render('anotherTemplate', {
to: 'secondary'
});
//note that you can write a route for '/one-route'
//then another for '/one-route/route' which will function exactly like above.
});
टेम्प्लेट रेंडर करने से पहले डेटा की सदस्यता लें और प्रतीक्षा करें
Router.route('/waiting-first', {
waitOn: function() {
//subscribes to a publication
//shows loading template until subscription is ready
return Meteor.subscribe('somePublication')
},
action: function() {
//render like above examples
}
});
कई प्रकाशनों की सदस्यता लें और टेम्पलेट प्रदान करने से पहले डेटा की प्रतीक्षा करें
Router.route('/waiting-first', {
waitOn: function() {
//subscribes to a publication
//shows loading template until subscription is ready
return [Meteor.subscribe('somePublication1'),Meteor.subscribe('somePublication2')];
},
action: function() {
//render like above examples
}
});
आयरन राउटर के लिए गाइड: http://iron-meteor.github.io/iron-router/
फ़्लो राउटर के साथ
फ्लो राउटर आयरन राउटर की तुलना में अधिक मॉड्यूलर है।
फ़्लो राउटर स्थापित करें
meteor add kadira:flow-router
टेम्पलेट रेंडर करना
विशेष रूप से, आपको अपने रेंडरिंग इंजन के साथ लिंक करने के लिए मैन्युअल रूप से एक लेआउट रेंडरिंग पैकेज जोड़ना होगा:
- ब्लेज़ के लिए ब्लेज़ लेआउट :
meteor add kadira:blaze-layout
- रिएक्ट के लिए रिएक्ट लेआउट :
meteor add kadira:react-layout
तब आप गतिशील टेम्प्लेटिंग (ब्लेज़ के मामले में) के माध्यम से प्रस्तुत कर सकते हैं:
<template name="mainLayout">
{{> Template.dynamic template=area}}
</template>
FlowRouter.route('/blog/:postId', {
action: function (params) {
BlazeLayout.render("mainLayout", {
area: "blog"
});
}
});
मानकों और / या क्वेरी के साथ एक टेम्पलेट का प्रतिपादन
मार्ग पर पैरामीटर निर्दिष्ट हैं, जैसे कि आयरन राउटर:
FlowRouter.route("/blog/:catId/:postId", {
name: "blogPostRoute",
action: function (params) {
//...
}
})
लेकिन मापदंडों को बाल टेम्पलेट के डेटा संदर्भ के रूप में पारित नहीं किया जाता है। इसके बजाय, बाल टेम्पलेट उन्हें पढ़ना चाहिए:
// url: /blog/travel/france?showcomments=yes
var catId = FlowRouter.getParam("catId"); // returns "travel"
var postId = FlowRouter.getParam("postId"); // returns "france"
var color = FlowRouter.getQueryParam("showcomments"); // returns "yes"