1

これが私のシェルです:

<div>
    <div id="content" class="container-fluid page-host main">
        <!--ko router: { transition:'entrance', alwaysTriggerAttach: 'true', cacheViews: 'true' }--><!--/ko-->
    </div>
</div>

私は常に次を使用してビューに移動します。

router.navigate(route);

現在、特定のビュー (アイテム) にいて、別の ID (/#item/id) のナビゲート関数を呼び出すと、データは正しく変更されますが、遷移は発生しません。

何かアドバイス?ありがとう

ニコラス

4

1 に答える 1

1

durandal/js/composition.js のこの関数で遷移をトリガーする必要があるかどうかを定義します。

function shouldTransition(context) {
if (system.isString(context.transition)) {
    if (context.activeView) {
        if (context.activeView == context.child) {
            return false;
        }

        if (!context.child) {
            return true;
        }

        if (context.skipTransitionOnSameViewId) {
            var currentViewId = context.activeView.getAttribute('data-view');
            var newViewId = context.child.getAttribute('data-view');
            return currentViewId != newViewId;
        }
    }

    return true;
}

return false;

トランジションをトリガーしてから同じビュー内を移動する場合は、次の if ステートメントにコメントを付けることができます。

if (context.activeView == context.child) {
   return false; 
于 2013-12-26T20:44:20.493 に答える