1

我在让 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 和模型。

4

2 回答 2

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/

于 2013-02-07T17:20:28.603 回答
0

在路由器中实现序列化以覆盖 id 的默认行为。例如,我有一条如下所示的路线:

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

路线看起来像

Em.Route.extend( {
    serialize: function( model, params ) { 
        return { begin: model.begin.valueOf(), end: model.end.valueOf() };
    }
} );
于 2013-02-20T19:18:17.160 回答