我正在使用Angular Universal for Java(See the project here)开发一个带有服务器端渲染的Angular 5应用程序。我有一个参数化的路由在Angular中定义为/person/:personId
,这在浏览器中呈现时效果很好,但在服务器上却没有。
在我的spring-mvc控制器中我有
@GetMapping({"/"})
public ModelAndView showHome() {
return new ModelAndView("/");
}
@GetMapping({"/person/{personId}"})
public ModelAndView showFeedbackDetail(HttpServletRequest request,
@PathVariable("person") String personId) {
return new ModelAndView("/person/:personId");
}
在我的application.properties中:
# Define all application routes
angularjuniversal.routes=/,/person/:personId
# point to the SPA index.html page
angularjuniversal.indexResourcePath=/static/index.html
# point to the server application
angularjuniversal.serverBundleResourcePath=/server.js
我不确定如何将{personId}
参数传递给Angular进行渲染。
静态定义的路线可以正常工作。
答案 0 :(得分:0)
我已经回答了我自己的问题here。
简而言之,似乎0.0.2的angularj-universal库不支持参数化路由。看起来它将在即将发布的版本中修复。这可以通过复制AngularJUniversalView和AngularJUniversalViewResolver的最新实现并使用复制的AngularJUniversalViewResolver实现覆盖当前在spring上下文中的ViewResolver来同时修复。