5

私はEmberアプリで作業しており、ボタンをクリックして新しいルートに移行し、そのルートのコンテキストとしてオブジェクトを渡します。

問題は、どのようにそのコンテキストを渡そうとしても、移行先のルートに到達するまでに常に失われることです。

調査中(http://jsfiddle.net/fxbXM/2/)、コンテキストは、要求されたルートで機能するため、ルーターが最初にヒットしたルートに渡されたようです。(各ルートレベルからのconnectOutlets関数の出力を参照してください)

これは、実際のアプリをデバッグするときに見つけたと思ったことを確認しているようです。EmberのtriggerSetupContext関数には、enterStates[Router、'root'、'create']の3つとcontexts[myObject、null、null]の3つがあります。

コンテキストが逆の順序である場合、必要な場所で必要なものを取得できます。

オブジェクトをコンテキストとして渡す方法で根本的なエラーが発生していますか?別のアプローチを使用する必要がありますか?

4

1 に答える 1

5

何が機能しないかを理解するのは少し難しいです...デバッグ中に、これを見つけました。ルーターでは、動的セグメントを持つ状態のみがコンテキストを持っているため、createルートに「:widget_id」を追加しました。これは機能しているようです。http://jsfiddle.net/Sly7/EqyUa/を参照してください

ルートに動的セグメントがない場合、コンテキストを渡すことができないようです。それを確認できたらいいなぁ…

アップデート

githubリポジトリで検索すると、この問題が見つかりました:#1118connectOutlets最後のコメントで、Yehudaは、動的セグメントなしでコンテキストを渡すことが意味をなさない理由を説明しています。

于 2012-08-21T22:29:56.507 に答える