我在Ember.js中拥有这样的资源和路线:
this.resource('ranking', function() {
this.route('best', { path: '/best' });
this.route('new', { path: '/new' });
});
this.resource('profile', {path: '/profile/:id' });
这样的数据路线:
App.RankingBestRoute = Ember.Route.extend({
model: function()
{
return App.Profile.find();
}
});
当我去../profile/1时,它会显示正确的个人资料,当我转到../profile/2时。
我的最佳排名模板如下所示:
{{#each model}}
{{name}}
{{/each}}
我想在人们点击名称时将其重定向到/ profile / 1,所以我写道:
{{#each model}}
{{#linkTo profile}}{{name}}{{/linkTo}}
{{/each}}
当我将光标指向名称时,它会显示如下链接:
...#/profile/<App.Profile:ember320:2>
而不是:
...#/profile/2
我做错了什么?如何解决?
答案 0 :(得分:1)
如果您的模型在资源图(:id)中没有与slug匹配的字段,则它将不知道如何生成URL。如果是这种情况,请在路线中创建序列化方法。
App.ProfileRoute = Ember.Route.extend({
serialize: function(model){
return { id: model.get('whateverTheIdIsInYourModel')};
}
});
答案 1 :(得分:0)
您的“个人资料”资源包含动态细分,因此您必须在通过linkTo进行转换时传递模型。像
这样的东西{{#each model}}
{{#linkTo profile this}}{{name}}{{/linkTo}}
{{/each}}
应该有用......
参考linkTo