• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在Angular Universal中设置cookie?

angular 来源:Lars 3次浏览

在我们的Angular 4.x项目中,我们使用了Angular Universal和angular2-cookie-law。我意识到Angular Universal不适用于windowdocument等,但我已阅读了一些变通方法。我试过如下:如何在Angular Universal中设置cookie?

if (isPlatformBrowser(this.platformId)) { 
    this.showCookieLaw = true; 
} 

而缠上了我的cookie的法律成分在这样的观点:

<cookie-law *ngIf="showCookieLaw">...</cookie-law> 

但是,这并不工作,到目前为止,还没有发现一种不同的方法。任何人都可以引导我正确的方向?


===========解决方案如下:

如果一个模块使用单独的提供程序作为document.cookie的抽象,则可以为服务器单独定义它。但是,它直接使用document全局,因此负责该操作的提供程序应该在服务器模块中进行模拟。

考虑到the component uses service’s seen public method,这是一个应该被掐灭,是这样的:

import { CookieLawService } from 'angular2-cookie-law'; 

exports class MockedCookieLawService { 
    seen =() => false; 
} 

... 
imports: [CookieLawModule, ...], 
providers: [{ provide: CookieLawService, useClass: MockedCookieLawService }, ...] 
... 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)