l.michel
l.michel

Reputation: 23

Meteor: how to use different routes for the same template

I want to pass a param by the router

I have been trying :

Router.route('/someURL/:id', {
    name: 'someTemplate',
    data: function() {
        var myData = someCollection.findOne({_id:this.params.id});
        myData.someParam = true;
        return myData;
    }
});
Router.route('/anotherURL', {
    name: 'someTemplate',
    data: function() {
        return {someParam:false};
    }
});

but it doesn't work

This is my error: Error: Handler with name 'someTemplate' already exists.

How can i solve it.?

Note: I need this "someParam"

Upvotes: 0

Views: 121

Answers (1)

Philip Pryde
Philip Pryde

Reputation: 940

The name is a name for the route not the template you want to use. Route names are a unique identifier per route much like the url and can be used to call the route without using the full url. You want something like:

Router.route('/someURL/:id', { 
    name: 'someName', 
    template: 'someTemplate',
    data: function() { 
        var myData = someCollection.findOne({_id:this.params.id}); 
        myData.someParam = true;      
        return myData; 
    } 
}); 
Router.route('/anotherURL', { 
    name: 'someOtherName', 
    template: 'someTemplate',
    data: function() { 
        return {someParam:false}; 
    } 
});

Upvotes: 2

Related Questions