1

私の質問は非常に単純で、特別な説明は必要ありません。

Durandal では、viewmodel との切り替え時にトランジションを使用するかどうかを制御できますか?

アニメーションを非アクティブ化できるようにしたい理由は次のとおりです。

quicksearch.jsどこからでもアクセスできるシェル/マスターページに検索フォーム モジュールがあります。入力を検証してから、results.jsハッシュの後に URL で検索パラメーターを渡して結果ページにリダイレクトするだけです。がサーバーへのresults.jsクエリを処理します。

quicksearch.js以外のページでモジュールを使用するとresults.js、アニメーションがトリガーされ、望ましい動作になります。ただし、 onresults.jsで を使用quicksearch.jsすると、URL で変更されるのはパラメーター文字列のみです (ハッシュの直後のモジュール名は変更されません)。それでも、これは からへのresults.jsアニメーションを使用して、再びアクティブ化するライフサイクル全体を通過し、かなり見栄えが悪くなります。results.jsresults.js

では、ある条件下で、デュランダルがコンテンツをアニメーション化するのを防ぎ、ビューを作成してバインドする方法はありますか?

4

1 に答える 1

0

ビューモデルから移行プロセスを制御する方法が見つかりませんでした。それを行う方法があるとは思えません。

それでも、私が尋ねた理由は、異なるハッシュ クエリ文字列を使用して現在のページに移動するときに、Durandal がアニメーションしないようにするためでした (このクエリ文字列を変更すると、ナビゲーションがトリガーされます)。解決策は、カスタム トランジションを作成し、ターゲット ビュー ID が現在のビュー ID と同じかどうかを確認することでした。依存する

context.activeView.dataset.view === context.child.dataset.view;

wherecontext.activeViewは現在アタッチされcontext.childているビューで、 はバインドしようとしているビューです。次に、これらの ID が異なる場合はアニメーションをトリガーし、そうでない場合は単純に非context.activeView表示にして他方を表示します。

今回の件は以上です

于 2014-04-15T12:53:33.760 に答える