使用Ember Pre4 linkTo车把

时间:2013-02-07 14:49:34

标签: ember.js

我在使用linkTo Handlebar助手工作时遇到了问题

我已经设置了这条路线:

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

在我的模板中,我有以下代码:

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

结果链接是/ contact / show / undefined

我做错了什么?

旁注:我没有使用Ember.Data和模型。

2 个答案:

答案 0 :(得分:1)

Ember希望参数遵循惯例modelname_id,因此路线应更改为:

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

这应该有效,假设entry.get("id")已定义。

有关详细信息,请参阅http://emberjs.com/guides/routing/specifying-a-routes-model/

答案 1 :(得分:0)

在路由器中实现serialize以覆盖id的默认行为。例如,我的路线如下:

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

,路线看起来像

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