PagerJS 如何构建导航栏? [英] PagerJS how to build a navbar?
本文介绍了PagerJS 如何构建导航栏?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的目标是编写一些可重用的代码来呈现基本的导航栏,因为这将是一项非常重复的任务.以下功能是我的首要目标:
- 每个页面都应该在 foreach 绑定中呈现
- 每个页面都应该抓取当前路由的活动状态
- 每个页面都应该异步或内联加载
这是我的第一次尝试.我希望标记是这样的
<li><!--[1]这里需要一个切换器来显示活动/非活动状态,即类绑定.--><a data-bind='html: caption, click: $data.load'></a>
每个页面项目应该是这样的
function PageItem(id, caption) {this.id= id;this.caption = 标题;this.page = pager.page.find(id);this.load = function() {//[2]//这里的代码触发页面加载,//即 this.page.async(someCallback, this.id);}this.active = function() {//[3]返回 this.page.isVisible();}}
使用目标:
function VM() {var self = this;self.pages = [];self.pages.push(new PageItem('dashboard', "<i class='fa-icon-home'></i>"));self.pages.push(new PageItem('offerJoin', 'Offer'));}var vm = new VM();pager.extendWithPage(vm)ko.applyBindings(vm);pager.start('仪表板');
我需要有关 [1]、[2] 和 [3] 主题的帮助.任何指针?
解决方案
这是您构建它的方法.这只是示例.
app的结构是这样的,你可以自定义.
app//index.js/index.html//库//pager.js/require.js/knockout-3.0.0beta.js/意见//test.html/test1.html
这就是你可以做到的.
第一个 index.html
<头><script data-main="index.js" type="text/javascript" src="lib/require.js"></script>头部><身体><div class="container" style="padding-top: 30px;"><span id="span" onclick = 'clickme(this)'>我是span</span><div data-bind="page: {id: 'start' , title : 'First Page'}">您当前正在查看第一页的内容.<br/><a href="#!/start/deep">第一个孩子</a><br/><a href="#!/start/second">第二个孩子</a><br/><br/><div data-bind="page: {id: 'deep', title: 'Second Page',role: 'start', source: 'views/test1.html'}">您当前正在首页中查看首页的内容.<br/><a data-bind="page-href :'../second'" >Second Child</a>
<div data-bind="page: {id: 'second', title : 'Second Page', source: 'views/test.html'}">您当前正在查看第二页内第二页的内容.<br/><a data-bind="page-href :'../deep'" >第一个孩子</a>
<br/><br/><br/><a href="#!/structure">转到结构</a>
<div data-bind="page: {id: 'structure', title : 'Second Page'}">您当前正在查看第二页的内容.<br/><a href="#!/start">转到开始</a>