Angular2和Symfony结合在同一个应用程序中

时间:2016-07-27 17:22:08

标签: symfony angular routing

这是我关于堆栈溢出的第一个问题所以请善待!

我设计了一个基于Symfony服务器的应用程序,它具有几乎完整的后端接口。使用symfony路由器,我可以使用URL登录后端(例如www.domain.com/admin)并查看后端页面。

基于这个后端,我想创建一个Angular2应用程序来处理前端。使其适用于头版网址(www.domain.com)非常简单。但是,如果我使用任何可以在Angular2应用程序中工作的子路径(例如www.domain.com/inner-page),Symfony路由器将接管并抛出404 Not Found - NotFoundHttpException。

问题是,如何在" parallel"中使用两个路由器? www.domain.com/admin下的任何网址都将由Symfony路由器和Angular2路由器的任何其他网址处理?

修改

感谢您的回复!

我有一些想法。它可能不是很优雅,因为它需要从symfony手动排除角度路径,反之亦然,但它看起来更干净。我仍然在努力,所以它仍然是一个理论概念:

  • 对于包含" / admin /"的每个网址, Symfony 路由器将按照设计目的提供后端twig-php网页。但是对于任何其他网址,一个简单的控制器只会为角度应用程序提供服务。

  • 另一方面,在前端, Angular 路由器将像往常一样工作。但是,如果一个url包含" / admin /",它将由Angular组件处理,该组件只是在其OnInit函数中更改window.location.href以重定向到Symfony后端。

    < / LI>

2 个答案:

答案 0 :(得分:1)

角度应用程序应该单独构建,Symfony是一个后端框架,不是用于构建角度应用程序的好选择。

我创建了一个如何一起使用2的示例,使用FOS用户捆绑包和FOS OAuth服务器捆绑包来处理身份验证。

现在已经有几年了,但是应该让你知道如何一起使用它们。

Github现在已经关闭,但是当它回来时我会用链接更新它。

编辑: https://github.com/mbates/Symfony2-AngularJs

答案 1 :(得分:0)

AngularJS中有AngularUI routing框架可用于AngularJS应用程序中的路由。您可以使用Angular UI-Routing框架来管理应用程序的前端,而Symfony2可以处理应用程序的后端。 Angular JS UI-Routing URL将如下所示,

www.domain.com/#page1

而不是这个,

www.domain.com/page1

在哈希(#)之后,url将不会成为Symfony2的一部分。使用Angular UI-Router URL映射Symfony2 URL的位置将在州内。看一下这个tutorial。我希望AngularUI能解决你的问题:)

干杯!