首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杜兰达尔-页面的隐藏部分取决于url或路由。

问杜兰达尔-页面的隐藏部分取决于url或路由。
EN

Stack Overflow用户
提问于 2015-02-25 19:03:27
回答 1查看 338关注 0票数 2

在我的硬脑膜应用程序中,除主页外,每个页面都有一个左肚脐。这个左导航栏应该在刷新时更新,尽管它应该驻留在shell.html上。

问题是我不能把它正确地隐藏在主页上。当我在主页上时,我可以使用jquery ()方法来隐藏左撇子div,但是问题是,我只能在data-bindind之后使用jquery代码,直到那里我才能看到导航条。我尝试使用硬组织,但我不知道如何将导航栏仅隐藏在主页中,因为我不知道如何知道我是在主页上还是不在shell.js中。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-25 19:13:44

在您的视图模型中,您希望通过创建一个侦听当前指令值的计算来连接到路由器:

代码语言:javascript
复制
var ko = require('knockout');
var router = require('plugins/router');

function viewModel() {
    this.currentRoute = ko.computed(function() {
        return router.activeInstruction().fragment;
    });
}

然后,可以使用视图中的可见绑定引用此变量。

代码语言:javascript
复制
<!-- home route only -->
<div data-bind="visible: currentRoute() == 'home'></div>

<!-- non-home routes -->
<div data-bind="visible: currentRoute() != 'home'></div>

如果您需要更复杂的逻辑,您可以创建一个特殊的计算函数,对当前路由执行特定的测试,然后引用该变量。例如:

代码语言:javascript
复制
this.isSpecialRoute = ko.computed(function() {
    var re = /matchspecialroute/;
    return re.test(this.currentRoute());
}, this);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28727478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档