2013-04-21 64 views
9

我正在做一个与jQuery Mobile和Angular.js的应用程序。因为我们在使用这两个库时遇到了一些问题,所以存在执行“teh工作”的adapterAngular.js与jQuery Mobile

所以我试图使用routeProvider路由我的网页。但我仍然无法使用这个呈现网页。

在这里,如果你能帮我指路。

http://plnkr.co/edit/DNGiT83csWMmfYnHXOop

提前感谢!

+0

第8行出现错误,如果您修复该错误,页面呈现效果会很好。 – 2013-04-22 00:31:44

+0

有趣...我修复它..但与脱机适配器不起作用。只是在云... – 2013-04-22 01:37:26

回答

14

我遇到了类似的问题,也许我学到的东西可能会帮助你。它归结为角度和jQuery从一个页面/部分到另一个(路由)的方式的差异。

首先,基本知识:角度路由通过插入一块html到你的视图,然后在任何点击/动作/等等,从视图中删除该html,并添加一个新的HTML块。基本上你总是在同一页面上;只是包含的html正在改变。相反,将jqm视为将所有html加载到同一页面中,并将这些html块加载为div。而不是去除html块并替换它们(通过路由),它只是关闭和打开div。 (有多页的jqm应用程序,但是SPA真的强调了这些差异。)

我的建议是选择你真正想要的功能集:角度的简约加载(只在你需要的时候)或者jqm的华而不实的转换和其他内置功能。如果你有一个大量的应用程序,每个页面上都有大量的数据,你可能想绕过jqm并单独使用angular,看看你可以用angular的新动画函数做些什么。这意味着您需要构建(通过CSS或JavaScript)jqm功能的重复项 - 从我所看到的,您可以关闭它,但不会像jqm那样令人愉快地简化。

如果jqm内置功能是您真正想要的,那么请跳过使用angular的路由。无论如何,它只会引入各种并发症。使用jqm的模式设置您的页面,并仅在您处理数据的位置使用角度。

我发现的最好的方法就是把它当作整体的jqm应用程序来处理,并且只将角度添加到需要它的部分。毕竟,你不必在html行添加ng-app;您可以根据需要将其添加到单个div中。由于jqm作为一个系统范围的东西是最快乐的,而角度恰好被限制在系统内部,所以我发现jqm-whole和angular-parts是最简单的方法,世界。

+0

你好kl02,非常好,详细的答案。我即将开始一个使用提到的库的新项目,我会按照你的建议来做,我想它会工作。同时,您是否有任何现场样本或小型项目来展示开始? – 2013-07-11 03:11:12

+0

对不起,还没有把它在网上呢。本周末我会尽力做一个小小的演示来演示。 – kl02 2013-07-19 17:49:55