将我的网站转换为使用 Angular JS


Converting my site to use Angular JS

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

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

我的设计布局非常简单:

后端:

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

前端:

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

我明白从根本上说,我需要从内容和索引.php页面中删除所有 PHP,而是向后端 PHP 文件发出 ajax 请求,这些文件应该输出 JSON 对象,然后 Angular 可以使用这些对象以我编程的方式构建 DOM。

我不明白我应该如何:

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

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

对于这个问题的巨大开放性,我深表歉意,并提前非常感谢大家的时间

是的,你还有很多事情要做。但别担心,我曾经在你的位置上,我在短时间内就通过了(并爱上了 Angular)。

正如你所说,你的

问题是开放式的,但是关于你的页面和URL参数,我真的建议你看看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的官方保护伞内。