使用 Symfony 3 和 Angular 2(路由)的单个应用程序

Single App with Symfony 3 and Angular 2 (Routes)

目前我有一个使用 Angular 2(所有前端)和 Symfony 3(网络框架)构建的应用程序。我已将每个视图定义为一个 Angular 应用程序。

我认为是时候迁移到单一应用程序了,但在我冒险进入狮子窝之前我有一些问题。

如果用户手动更改 URL,当然,他们应该进入请求的 URL,但是 angular 怎么知道哪个 url 正在尝试打开?

我应该创建多个控制器还是只创建一个来捕获所有请求? 如果以上 none 是正确的方法,请问您可以建议任何方法吗?

非常感谢。

如果您正在尝试构建 Single Page application, it means that your routes will be managed by your front-end, here by Angular 2 via @angular/router

Symfony 可以 用作后端网络服务(即 Restful API) that will answer to your front-end calls via JSON responses. Depending on the size of your API, you may wish to use FOSRestBundle 用于此目的。

因此您不必担心 Symfony 路由解释,因为您的 url 将由 Angular 路由器管理。 Symfony 路由将由您的 Angular 应用程序直接调用到 get/post/put/delete/patch 您的后端数据。

更新

为了回答您的评论,直接输入 URL 的用户只会看到您通过 Angular 路由链接到此 url 的页面,有(几乎)前后端路由没有区别.

如果您想深入了解散列路由在 javascript 中的工作原理,您可以查看此 article

要查看具有完整 Angular 路由的 SPA 的真实示例,ga.me 是一个好的开始。