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 回答