0

だから私はさらに別の DurandalJS の質問があります。そのため、ほとんど自己完結型のウィジェットがいくつかあります。現在のユーザーがログインしているかどうかに応じて、自分自身をレンダリングまたは非表示にします。たとえば、現在のユーザー名を表示するウィジェットと、現在のユーザーの設定を表示する別のウィジェットがあります。「現在のユーザーはローカルストレージに保存されている値であるため、基本的に誰もがそこから取得して自分の仕事をすることを知っています.

ユーザーがログインしたときとユーザーがログアウトしたときに、それ自体でイベントをトリガーするセキュリティ モジュールがあります。

シェルを含むすべてのウィジェットはこのセキュリティ モジュールを必要とし、それらはすべてイベントを処理します。シェルのイベントハンドラーが呼び出されるため、イベントが機能していることがわかりますが、シェルに表示されているにもかかわらず、ウィジェットはイベントを表示しません。

ただし、ページのハード リフレッシュを行うと (ユーザーがログインしているかログアウトしているかに関係なく)、すべてのウィジェットが適切にレンダリングされるため、ウィジェットが何をすべきかを認識できます。私はこれを間違っていますか?はいの場合、どのようにすればよいですか。

ありがとう

4

1 に答える 1

1

問題は、ウィジェットからシングルトンを返していたことです。違いはわかりませんが、シングルトンを返したときにイベントを取得できませんでした。Durandal は、同じ種類の複数のウィジェットをインスタンス化できるように、ウィジェットがコンストラクター関数であることを期待しています。こちらを参照してください。

viewmodel.js は、すべてのウィジェットのコードの場所として機能する関数エクスポート モジュールです。これは、構成モジュールを介してウィジェット インフラストラクチャによって view.html にバインドされます。

于 2013-10-31T06:33:44.543 に答える