Ember.Route,为什么params不允许除了分段id以外的道具?

时间:2013-07-06 06:05:13

标签: ember.js

为什么模型参数不允许除分段ID之外的额外参数?

路线

App.Router.map(function() {
  this.route("users");
  this.route("userdetails", { path: "users/:user_id"});
}


Route is:
....

model: function(params) {
var user_status = params.user_status;
  console.log(user_status);
   return params;
}
serialize : function(model) {
   return { user_id: model.user_id, user_status : model.user_status }
 }

用户状态未定义。

2 个答案:

答案 0 :(得分:1)

params挂钩的model对象对应于路由的URL。因此,对于user_id为1,它对应于/users/1

Ember从路径的这个URL抓取user_id = 1,并将其作为参数传递给model钩子。

由于网址中没有user_status,因此记录为undefined

答案 1 :(得分:1)

@Darshan Sawardekar的答案是完全正确的,但我想补充一点,你需要做的是在路由定义中添加缺少的动态段,以便可以在serialize挂钩中访问它。

  this.route("userdetails", { path: "users/:user_id/:user_status"});

正在做:

serialize: function(model) {
  return { user_id: model.user_id, user_status : model.user_status };
}

应该产生正确的参数,网址应该是:

/users/1/online

online当然是发明的,因为我不知道你的用户状态是什么。 有关伪实现,请参阅here(查看控制台日志)。

希望它有所帮助。