AyKarsi
AyKarsi

Reputation: 9675

Using Ember Pre4 linkTo handlebar

I've got a problem getting the linkTo Handlebar helper to work

I've got this route setup:

   this.resource("contact", function(){
        this.route('new');
        this.route('show', { path: "/:contactid" });
        this.route('edit', { path: "edit/:contactid" });   
    }

in my template I have the following code:

{{#each entry in controller.entries}}
{#linkTo "contact.show" entry href="true" }}test {{firstname}} {{lastname}}{{/linkTo}}
{{/each}}

The resulting link though is /contact/show/undefined

What am I doing wrong?

Sidenote: I'm not using Ember.Data and the models.

Upvotes: 1

Views: 190

Answers (2)

Sean Smith
Sean Smith

Reputation: 284

Implement serialize in the router to override the default behavior of id. For example I have a route that looks like:

this.route( 'date', { path: '/:begin/:end'} );

and the route will look like

Em.Route.extend( {
    serialize: function( model, params ) { 
        return { begin: model.begin.valueOf(), end: model.end.valueOf() };
    }
} );

Upvotes: 0

Mike Grassotti
Mike Grassotti

Reputation: 19050

Ember expects that parameters follow the convention modelname_id, so the route should be changed to:

this.resource("contact", function(){
    this.route('new');
    this.route('show', { path: "/:contact_id" });
    this.route('edit', { path: "edit/:contact_id" });   
}

This should work, assuming that entry.get("id") is defined.

See http://emberjs.com/guides/routing/specifying-a-routes-model/ for detail.

Upvotes: 1

Related Questions