在Durandal中路由器isActive和router.isNavigating之间的区别是什么

时间:2015-02-05 06:34:48

标签: durandal

http://durandaljs.com/documentation/Using-The-Router.html

  

请注意,模型中的每个可导航路径都有一个isActive标记   当关联的路线处于活动状态时,它将为true。最后的事情   请注意,我们已将一个简单的微调器动画绑定到   router.isNavigating

首先,有人可以帮助我澄清isActive和isNavigating之间的区别吗?

其次,isActive指的是下面的代码

<ul class="nav" data-bind="foreach: router.navigationModel">
    <li data-bind="css: { active: isActive }">
        <a data-bind="attr: { href: hash }, html: title"></a>
    </li>
</ul>

我搜索了托管here的官方代码,但我找不到定义活动类的位置。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

如果路由器当前正在从一个路由转换到另一个路由,则

router.isNavigating为真。

如果路线当前开始显示,则

isActive对于路线为真。

假设导航模型中有两条路线:

 var routes = [
                { route: '', moduleId: 'home', title: 'Home' },
                { route: 'subpage', moduleId: 'subpage', title: 'Sub Page' }
              ]

您开始查看家庭路线,因此家中isActive为真。

然后点击链接转到router.isNavigating

主页subpage现在为false,子网页isActive为true,isActive变为true,而durandal加载视图和视图模型并执行转换。

加载完成后isNavigating变为false。主页不活动,子页面仍然是。

你找不到isNavigating类,因为它不在durandal css中。它在bootstrap.css