Twi*_*her 5 express angular-universal angular
我有一个服务器端呈现的应用程序(有过渡),我有一个404页面,我已经放入一个懒惰的模块(所以我不增加加载的Javascript大小).
这工作正常,但是当客户端接管时有一些闪烁,我认为这是由于主块完成加载后的JS块加载.
鉴于此页面只包含静态链接和一个routerLink,根本不需要客户端,我想知道是否有办法在某些URL上禁用客户端
编辑:正如评论中建议的那样,我试图有条件地引导应用程序.我不能将URL用作条件,因为服务器对不存在的URL响应404(此时没有重定向).因此,最适合使用的是TransferState我在服务器端成功设置的东西,它在结束body标记之前生成一些输出.
不幸的是我没有找到任何方法来正确实例化TransferState,main.ts因为它应该通过导入BrowserTransferStateModule,我看不到在main.ts文件中导入Angular模块的可能方法.
我试图直接用initTransferState函数实例化它,但似乎它不是设计在模块外部使用,因为我收到一个错误:
ERROR in ./src/main.ts
Module not found: Error: Can't resolve '@angular/platform-browser/src/browser/transfer_state' in 'G:\Documents\Projets\Myapp\Sources\master\frontend\src'
Run Code Online (Sandbox Code Playgroud)
除了做一些肮脏的反序列化之外的任何想法?
我想这就是您正在寻找的:
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
export class MyComponent implements OnInit{
constructor(@Inject(PLATFORM_ID) private platform: any) { }
ngOnInit() {
if (isPlatformBrowser(this.platform)) {
// use clientside stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |