0

Durandal v2.1.0 ルーターを使用して、router.navigate();を使用してビュー間を移動する方法を理解しようとしています。関数。2 つのビュー間を行き来できましたが、そのたびにビューが再作成されます。これらのビューをキャッシュできるようにしたいので、ルーターがすでにアクティブ化されているビューにルーティングする場合、キャッシュから既存のビューを取得するだけです(監視可能な値などの現在のビューモデルの状態とともに...) .

シェルのルーターバインディングでcacheViews: trueオプションを使用することもできますが、これは機能していないようです。どんな助けでも大歓迎です。

4

1 に答える 1

0

それで...キャッシングがデフォルトで機能していることがわかり、キャッシングシステムがどのように機能するかを誤解していました。私の場合、viewmodelのactivate関数内ですべてのビュー初期化機能を実行していました。ただし、このアクティブ化機能は新しいビューにルーティングするたびに実行されるため、ビューに移動するたびに初期化機能が再実行されていました。簡単な解決策は、ifActivatedフラグを activate 関数内に置き、ビューが初めてアクティブ化された場合にのみ初期化機能を実行することでした。

于 2015-05-13T01:32:01.460 に答える