0

我正在尝试做一个自定义网址。

更具体地说,我已经做的是:mypage.com/details/1

我想做的是:mypage.com/details/john-doe

当然,我想要与现在完全相同的行为,唯一的区别是自定义字符串而不是 id

这是我的 DS 模型

App.Images.FIXTURES = [
{
            id:1,
            name: "John",
            lastName: "Doe",
            age: 25,
            customUrl: "john-doe"
},
{
            id:2,
            name: "John",
            lastName: "Doe",
            age: 31,
            customUrl: "john-doe1"
}];

*注意 customUrl 属性是唯一的。

我的路线:

App.Router.map(function(){
        this.resource("details", {path: 'details/:image_id'});
    });

以及相应的html:

{{#linkTo 'details' this}}The details{{/linkTo}}

我有哪些选择?将“this”放入 html 中会自动获取 ID。我尝试了 this.customUrl 没有运气(我在 url 中得到“未定义”值)。

谢谢您的帮助!

4

1 回答 1

0

您可以在路由器中覆盖serialize以返回customUrl而不是id

App.DetailsRoute = Ember.Route.extend({
    //   ....
    serialize: function(model) {
        return { details_id: model.get('customUrl') };
    }
});
于 2013-08-20T13:44:30.067 回答