使用jQuery Mobile的Angular.js

时间:2013-04-21 23:57:45

标签: jquery-mobile angularjs

我正在使用jQuery Mobile和Angular.js做一个应用程序。因为我们在使用这两个库时遇到了一些问题,存在一个adapter来做“工作”。

所以我正在尝试使用routeProvider来路由我的页面。但是我仍然无法使用它来渲染页面。

如果你可以帮助我指明方向的话,那就在这里。

http://plnkr.co/edit/DNGiT83csWMmfYnHXOop

提前致谢!

1 个答案:

答案 0 :(得分: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模式设置页面,并仅在处理数据时使用angular。

我发现最有效的方法是将它视为整体的jqm应用程序,并且只在您需要的部分添加角度。毕竟,您不必在html行添加ng-app;您可以根据需要将其添加到单个div中。因为jqm作为一个系统范围的东西是最幸福的,虽然角度很好被限制在系统内的碎片,到目前为止我发现jqm-whole和angular-parts是最好的方法来充分利用它们世界。