0

emberJSとルーターで問題が発生しています。

私のルートアーキテクチャは以下のものです:

    • 索引
    • アプリ
      • アイテム
        • display /:id
        • edit /:id

最初に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 };
}

シリアル化で渡されたコンテキストをログに記録すると:

  • 更新前:適切な項目に設定されています
  • 更新後:IDを含まない要素(私のアイテムではない)に設定されます

したがって、ページの更新後にURLをシリアル化するための何かが不足していると思います。

リードはありますか?

ありがとう

4

1 に答える 1

1

この質問は、Emberjs 非同期ルーティングですでに対処されていました

解決策は、Deferred オブジェクトを使用してロード状態を実装することです。

それが役立つことを願っています

于 2012-12-11T18:31:05.447 に答える