Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 通用预渲染导致设置空传输状态_Angular_Angular Universal - Fatal编程技术网

Angular 通用预渲染导致设置空传输状态

Angular 通用预渲染导致设置空传输状态,angular,angular-universal,Angular,Angular Universal,我在应用程序中使用Angular Universal和预渲染。在我的应用程序中,我将以下路径设置为预渲染: / /about /login 以下路径是唯一使用传输状态的路径: /:id 奇怪的是,在构建和运行节点服务器之后,查看任何路径的源,我可以在源的底部看到一个空传输状态的脚本标记。根路径中使用的任何组件都不使用传输状态或任何其他路径,除了/:id <script id="app-state" type="application/json">{}</script>

我在应用程序中使用Angular Universal和预渲染。在我的应用程序中,我将以下路径设置为预渲染:

/
/about
/login
以下路径是唯一使用传输状态的路径:

/:id
奇怪的是,在构建和运行节点服务器之后,查看任何路径的源,我可以在源的底部看到一个空传输状态的脚本标记。根路径中使用的任何组件都不使用传输状态或任何其他路径,除了
/:id

<script id="app-state" type="application/json">{}</script>

为什么在预渲染时传输状态设置为空状态键?传输状态
set()
仅在
/:id
页面上使用的服务方法中调用,但每个路由上都设置了空状态。

这是由我的生成引起的。事情发生的混乱;由Web包生成的server.js使用的文件需要预先呈现。如果是,您将获得复制的脚本标记用于状态传输,因为
TransferState
在不使用它的页面上设置空对象是正常的。一旦server.js检索到文件以在服务器端呈现非预呈现页面,它就会得到一个预呈现模板,其中已经有一个状态转移脚本标记

澄清一下,是我的package.json脚本出了问题。需要这样做:

  • 角形触针构建
  • 网页包构建
  • 预渲染

  • 这是我的身材造成的。事情发生的混乱;由Web包生成的server.js使用的文件需要预先呈现。如果是,您将获得复制的脚本标记用于状态传输,因为
    TransferState
    在不使用它的页面上设置空对象是正常的。一旦server.js检索到文件以在服务器端呈现非预呈现页面,它就会得到一个预呈现模板,其中已经有一个状态转移脚本标记

    澄清一下,是我的package.json脚本出了问题。需要这样做:

  • 角形触针构建
  • 网页包构建
  • 预渲染
  • this.transferState.remove(stateKey);
    this.transferState.set(stateKey, data);