在服务器呈现页面的混合环境中运行Angular

时间:2018-03-21 15:57:49

标签: angular

在我参与的项目中,我们有一个MVC5应用程序。我们希望使用Angular 4将复杂的前端javascripts组件构建到此站点中。同时仍然能够使用旧学校视图呈现其他部分。

我的想法是,我可以为不同的区域创建一个具有不同模块的应用程序,然后可以选择在特定位置呈现哪些。但在所有示例中,我都看到人们正在创建SPA应用程序,而不是构建单独的组件或模块,而这些组件或模块本身就是要呈现的。

我已经使用了Angular JS,这使你基本上可以将ng-app标签添加到正文中,然后在你想要的位置添加角度控制器,你可以轻松地将它与服务器渲染页面混合。

我发现这个帖子与人们讨论相同的事情,但没有人似乎有一个解决方案,他们包含的plunker不再有效。 https://www.reddit.com/r/Angular2/comments/424nwn/using_angular_2_without_it_being_a_single_page_app/

如何使用新的Angular 2 +来实现这一目标?

1 个答案:

答案 0 :(得分:1)

Google" Angular Elements"。也许有一天它会像一个CLI命令一样容易将组件包装为自定义元素。但就目前而言,Angular可能并不是最容易融入大型服务器渲染应用程序的。

我在类似情况下采取的一条路线是我在iframe中构建了一个新的NG SPA应用程序和嵌入式遗留服务器视图(也增加了angularjs 1.x)。你读对了,iframe! :D它只是有效。我可以逐渐用新的Angular部分替换旧的服务器视图,因此最终应用程序将是一个纯粹的Angular spa。

IE中。这是一个FrameComponent路由,它接收URL的其余部分并在iframe的src中设置,所以任何旧的URL都可以正常运行'只需在网址前加上新应用内部。添加了一些参数,例如。服务器视图跳过呈现菜单等。