2012-07-27 60 views
3

我在尝试使用JQM和MVVM时遇到了一些挑战。我也尝试使用knockout.js。jQuery Mobile和MVVM挑战

例如,目前我想实现类似于iOS的页面控件(表示你的小圆点可以刷卡导航到下一页)导航:

Page indicator

的数据进行显示的内容将从服务器获取,并且需要在JQM页面中显示。所以JQM页面需要动态创建。

从用户界面的角度来看,我打算使用包含点的固定页脚(基于页数)。

问题在于需要在JQM页面之间保留的视图模型,因为我不想通过页面从服务器加载数据,数据一次加载,并且预计客户端将显示它在页面中。

我可以拥有一个视图模型来保存数据并贯穿整个应用程序的生活,并将每个页面视图绑定到它。 取而代之的是,只要视图真的需要视图模型,我就希望它保持活跃状态​​。

我在想的解决方案是捕获jQueryMobile页面导航事件并查看导航是否位于这些页面之间。 如果不是,则应删除视图模型(将其分配给空值)。 下次如果需要加载这些页面中的任何一个(例如通过导航回到最后一页),则会重新创建视图模型(数据从Web站点再次获取)。

有没有更好的方法?

谢谢!

回答

0

您应该查看jQueryMobile文档中的Persistent Footers page

+0

我已经明确提到我要使用这些。这不是我的问题。问题是如何保持视图模型活着。 – 2012-07-28 07:15:47

0

为什么不尝试JQM pagination plugin以及持续页脚@calavoow提及?

这会为您提供可拖动的JQM页面,并设置页脚。

+0

很抱歉,但你也似乎不明白我的问题。 – 2012-07-28 07:16:17

+0

因此,您希望多个页面“在一个视图中”,因此您不必重新获取用户在浏览时看不到的任何页面?您可以尝试JQMs multipage,这将允许您加载“x-pages-in-one-document”。如果在“视图”中有页面A,B,C,D,则可以设置某些内容以在它们之间导航,而无需从服务器重新获取任何内容。您的视图保持活跃状态​​ – frequent 2012-07-28 08:53:18

+0

虽然多页​​面很棘手,因为您无法从已经存在的页面加载多页面。 JQM multipage基本上要求你的整个应用程序在多页面/视图内(除非你的rel =“external” - 链接到其他JQM页面(没有转换!)你也可以看看我的[multiview plugin](https:/ /github.com/frequent/multiview)。它仍在进行中,但您可以在JQM包装页面中使用单个面板,并将所有滑动页面放在此面板中。 – frequent 2012-07-28 08:56:30