转换我的网站以使用Angular JS

时间:2013-12-18 22:17:42

标签: javascript php angularjs

所以,我最近一直在关注AngularJS,我对它的许多功能印象深刻。我目前正在开发一个传统庄园的网站(php,html,css,mysql,一些jQuery),我真的想转换网站,以便我使用Angular。我想这样做是因为我目前正在许多页面中混合使用PHP和HTML,并且很难看出表示,数据和逻辑的位置(Angular似乎解决的问题非常好)。我在Web开发和编程方面经验丰富,但没有Angular的经验,除了在他们的网站上运行教程和一些杂项阅读之外。

Angular现在对我来说似乎很陌生,我想知道你们中的一些人是否可以帮助我理解如何以最恰当的方式做某些事情。我不希望有详细的解释,但任何指向适当的Angular指令/其他SO问题/其他网站的链接都会非常有用。

我的设计布局非常简单:

后端:

  • MySQL数据库,存储有关所有页面的信息[标题,访问级别,路径到文件等]
  • 包含启动会话并与数据库交互的函数的PHP文件,例如getPageData(),signInUser(),signOutUser()等。

前端:

  • index.php - 主模板页面。包括后端PHP文件以提供对其功能的访问。用户请求的页面是GET参数,因此典型的URL看起来像'domain.com/index.php?page=home'(虽然这被.htaccess掩盖,看起来像'domain.com/home') 。所有内容页面都包含在此页面的<div>

我从根本上理解,我需要从内容和index.php页面中删除所有PHP,而是向后端PHP文件发出ajax请求,这些文件应该输出Jular对象,然后Angular可以用它来构建DOM我把它编程为。

我不明白我该怎么做:

  • 获取URL参数以发送到后端PHP中的getPageData()函数,或获取任何其他URL参数。 (Angular似乎使用url的哈希部分而不是标准'?')
  • 在index.php页面中包含内容页面(我应该使用ng-view还是ng-include?)

另外,我可以想象在加载页面时发出多个$ http请求效率不高:例如一个用于获取页面数据,一个用于获取用户的数据,如访问级别,一个用于获取下载数据,等等。每个请求都不会在服务器上启动新线程并要求启动会话,要注册的常量等。

我为这个问题的巨大开放性道歉,并提前感谢你们所有的时间

1 个答案:

答案 0 :(得分:1)

是的,你有很多事要领先于你。但是不要担心我曾经在你的位置,我在很短的时间内完成了它(并且爱上了Angular)。

正如您所说,您的问题非常开放,但关于您的网页和网址参数,我建议您先看看ui-router作为Angular的ngRoute的替代方案。

https://github.com/angular-ui/ui-router

它非常类似于Angular中通常包含的$ route / $ routeProvider(实际上它取决于它并消耗它)但是做得更多。它允许您设置具有自己的URL和参数的状态(路由)。他们有一个很好的教程,如果你了解ui-router,angular的路线会更有意义。

总之,ngRoute和ui.router都可以解决您的URL权限/参数问题。 ui.router允许你做更多但是ngRoute可能更稳定,因为它在Angular的官方保护伞内。