如何在Angular Universal for Java中处理路由参数

问题描述 投票:0回答:1

我正在使用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进行渲染。

静态定义的路线工作正常。

java angular spring-mvc spring-boot angular-universal
1个回答
0
投票

我已经回答了我自己的问题here

简而言之,似乎0.04的angularj-universal库不支持参数化路由。看起来它将在即将发布的版本中修复。这可以通过复制AngularJUniversalViewAngularJUniversalViewResolver的最新实现并使用复制的AngularJUniversalViewResolver实现覆盖当前在spring上下文中的ViewResolver来同时修复。

© www.soinside.com 2019 - 2024. All rights reserved.