2

私のアプリケーションには、異なるデータを表示するために使用されるビューモデル/ビューのペアがあります。表示されるデータは、何らかのユーザー入力によって生成され、データ セットごとに個別のルートがルーターに登録されます。

問題は、同じビュー/ビューモデルが異なるルートに使用されるため、それらの間を移動するときに、ビューとビューモデル間のバインディングが更新されないことです。

コールバックに接続すると、 viewModelcanReuseForRouteが更新されましたが、ビューが更新されません。

バインディングで使用しようとしcacheVewsましたrouterが、ビューはまだ更新されませんでした。

同じビュー/ビューモデルを使用している別のルートに移動するときに、ルーター/ルーティング構成を更新するにはどうすればよいですか?

EDIT : (詳細)コールバックのフックbindingモジュールが最初に使用されたときにのみ、Durandal がビューをバインドすることを発見しました。同じモジュール (ビュー/ビューモデル) で別のルートに移動しようとすると、bindingコールバックが再度呼び出されません。

4

1 に答える 1

2

この回答で説明されているようareSameItemに、アクティベーターをオーバーライドしてみてください。戻ると、Durandal はページのライフサイクル全体を再び通過するようになるはずですが、使用は必ずしも必要ではないと思います。falsecanReuseForRoute

于 2014-03-19T21:47:38.780 に答える