0

我遇到了 emberJS 和路由器的问题。

我的路线架构如下:

    • 指数
    • 应用程序
      • 物品
        • 显示/:标识
        • 编辑/:标识

当我最初导航到 display/:id 时,URL 写得很好,如下所示:

localhost/#/app/item/display/da083d21-afab-4620-8a85-6a4e6bfb95b9

然后我点击浏览器的刷新按钮,然后将 URL 写为

localhost/#/app/item/display/undefined

我的路线中有以下函数来处理序列化/反序列化

deserialize:  function(router, context) {
    return App.Item.find(context.id);
},
serialize:  function(router, context){
    return { id: context.id };
}

当我记录在 serialize 中传递的上下文时:

  • 刷新前:设置为正确的项目
  • 刷新后:它被设置为一个不包含 id 的元素(不是我的项目)

所以我想我在页面刷新后缺少一些东西来序列化我的 URL。

有铅吗?

谢谢

4

1 回答 1

1

这个问题已经在Emberjs 异步路由中得到解决

解决方案是使用 Deferred 对象并实现加载状态。

希望有帮助

于 2012-12-11T18:31:05.447 回答