首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将多个不相交的元素与Pager.js中的页面相关联?

是否可以将多个不相交的元素与Pager.js中的页面相关联?
EN

Stack Overflow用户
提问于 2014-05-24 01:16:43
回答 1查看 128关注 0票数 0

我正在构建一个应用程序,并从Knockout开始。我们已经到了需要实现分页的地步了,看起来在Knockout中实现分页的实际库是Pager.js。

Pager很好用,而且非常容易使用,但我们有一个用例,我还没有想出Pager的解决方案。

在我们的许多页面中,我们希望能够在页面上的多个不相交的元素中显示某些内容。(不知道“不相交”是否是恰当的术语;真正的意思是那些完全不相连的元素,比如在DOM树的完全独立的分支中。)例如,我们可能想要在页眉、页脚或菜单中显示某些内容,以及Pager将呈现的主UI。

到目前为止,Pager似乎只将一个页面链接到一个元素,这就是它根据哪个页面处于活动状态而显示/隐藏的元素。

有没有办法让Pager显示/隐藏多个不相交的元素?我必须依靠像回调这样的东西来完成这件事吗?(我知道当Pager显示/隐藏页面时有一些回调,我认为这些回调可以用来实现这一点,但如果Pager为我处理这一点会更好。)

如果Pager并不真正支持这种用例,有没有其他类似的库可以尝试与Knockout兼容?或者,会有另一个完全支持这一点的Knockout的替代方案(AngularJS,Ember等)吗?

编辑:看着Ember,我正在寻找的是什么是described here and their "outlets" features (页面上的最后一个例子)。所以,我正在寻找与Knockout类似的功能。我确实认为我可以使用一些Knockout回调来模仿这一点,但它可能会涉及到大量的jQuery来移动或隐藏/显示东西。我宁愿不这样做,因为随着时间的推移和应用程序变得越来越大,这将成为更令人头疼的维护问题。

EN

回答 1

Stack Overflow用户

发布于 2014-05-24 11:25:07

是的,而且它很容易实现。阅读http://knockoutjs.com/documentation/binding-context.html

基本上,您只需使用$parent$parents[x]或最终使用$root来访问不在用作上下文的对象级别上的可观察对象。

下面是一个示例(是否使用pager.js并不会改变它的工作方式):

代码语言:javascript
复制
var viewModel = {
  user: {
    id: ko.observable(1),
    name: ko.observable('John')
  }
  menu: {
    links: {
      about: 'about.html',
      index: 'index.html'
    }
  }
};

WIth此HTML:

代码语言:javascript
复制
<div id="header">
  <p>Your name is <span data-bind="text: user.name"></span></p>
</div>
<div id="menu" data-bind="with: menu">
  <p>Your name is still <span data-bind="text: $parent.user.name"></span></p>
  <p>Your name is still <span data-bind="text: $parents[0].user.name"></span></p>
  <p>Your name is still <span data-bind="text: $root.user.name"></span></p>
</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23835000

复制
相关文章

相似问题

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