0

为什么模型参数不允许分段 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 }
 }

用户状态未定义。

4

2 回答 2

1

钩子的params对象model对应于路由的 URL。所以这里它对应于/users/11 的 user_id。

Emberuser_id从路由的这个 URL 中获取 = 1,并将其作为参数传递给model钩子。

由于user_statusURL 中没有,因此它记录为undefined.

于 2013-07-06T06:23:27.413 回答
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 };
}

应该产生正确的参数,并且 url 应该是这样的:

/users/1/online

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

希望能帮助到你。

于 2013-07-06T08:45:34.207 回答