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

Ben*_*est 5 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>在此页面中

我从根本上理解,我需要从 content 和 index.php 页面中删除所有 PHP,而是向后端 PHP 文件发出 ajax 请求,这些文件应该输出 JSON 对象,然后 Angular 可以使用它以我编程的方式构造 DOM到。

我不明白我应该如何:

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

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

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

Nic*_*ise 1

是的,你还有很多事情要做。但别担心,我曾经处于你的位置,并且我在很短的时间内就完成了它(并爱上了 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 的官方保护伞内。