在我的硬脑膜应用程序中,除主页外,每个页面都有一个左肚脐。这个左导航栏应该在刷新时更新,尽管它应该驻留在shell.html上。
问题是我不能把它正确地隐藏在主页上。当我在主页上时,我可以使用jquery ()方法来隐藏左撇子div,但是问题是,我只能在data-bindind之后使用jquery代码,直到那里我才能看到导航条。我尝试使用硬组织,但我不知道如何将导航栏仅隐藏在主页中,因为我不知道如何知道我是在主页上还是不在shell.js中。
有什么想法吗?
发布于 2015-02-25 19:13:44
在您的视图模型中,您希望通过创建一个侦听当前指令值的计算来连接到路由器:
var ko = require('knockout');
var router = require('plugins/router');
function viewModel() {
this.currentRoute = ko.computed(function() {
return router.activeInstruction().fragment;
});
}然后,可以使用视图中的可见绑定引用此变量。
<!-- home route only -->
<div data-bind="visible: currentRoute() == 'home'></div>
<!-- non-home routes -->
<div data-bind="visible: currentRoute() != 'home'></div>如果您需要更复杂的逻辑,您可以创建一个特殊的计算函数,对当前路由执行特定的测试,然后引用该变量。例如:
this.isSpecialRoute = ko.computed(function() {
var re = /matchspecialroute/;
return re.test(this.currentRoute());
}, this);https://stackoverflow.com/questions/28727478
复制相似问题