Ember.js Ember js存储并将单击的{{#link to}}属性传递给路由模型

Ember.js Ember js存储并将单击的{{#link to}}属性传递给路由模型,ember.js,handlebars.js,Ember.js,Handlebars.js,我是新加入Ember.js的,我正试图通过重写我的一个旧应用程序来学习它。不幸的是,我很早就被卡住了,需要一些帮助,因为在网上找不到答案 我有以下代码: App=Ember.Application.create({ 日志转换:true }); App.Router.map(函数(){ 这个。资源(“用户”,函数(){ 这个.resource(“score”,{path://:昵称“}); }); }); App.UsersRoute=Ember.Route.extend({ 模型:函数(){

我是新加入Ember.js的,我正试图通过重写我的一个旧应用程序来学习它。不幸的是,我很早就被卡住了,需要一些帮助,因为在网上找不到答案

我有以下代码:

App=Ember.Application.create({
日志转换:true
});
App.Router.map(函数(){
这个。资源(“用户”,函数(){
这个.resource(“score”,{path://:昵称“});
});
});
App.UsersRoute=Ember.Route.extend({
模型:函数(){
var url=“服务器url”;
返回新的Ember.RSVP.Promise(函数(解析、拒绝){
解析($.getJSON(url));
});
}
});
App.ScoreRoute=Ember.Route.extend({
模型:函数(){
var url=“服务器url”+”?昵称=“;
url+=从ClickedLink传递的昵称;
返回新的Ember.RSVP.Promise(函数(解析、拒绝){
解析($.getJSON(url));
});
}
});

{{{链接到“用户”}用户{{/链接到}
{{outlet}}
{{outlet}}
使用者
{{{#各}
{{{链接到“分数”昵称}{{昵称}{{/链接到}}
{{游戏}
{{score}}
{{/每个}}
{{昵称}的分数
{{{#每个分类核心}
{{category}}
{{gamesPlayed}
{{score}}
{{/每个}}

看起来你几乎什么都做对了,你只需要两件事。首先,您可以使用参数访问
模型
钩子中的
昵称
动态段

model: function(params) {
    var passedNicknameFromclickedLink = params.nickname;
}
其次,由于Ember对您的路由和模型采用了很多约定,因此您还必须重写路由中的方法。使用
serialize
方法,您要做的是从您的模型(来自服务器的JSON)开始,并返回用于查找该模型的昵称。我不知道您的JSON是什么样子的,但它可能是这样的:

serialize: function(model) {
    return encodeURI(model.nickname);
}

嗨,GJK,谢谢你的回答。这正是我所需要的。我甚至不需要重写serialize方法。