小编f.k*_*sis的帖子

覆盖特定测试的 TestBed Provider

我有一个组件,它有两个依赖项:一个是LOCALE_ID在 angular 中全局定义的,另一个是语言,在组件中定义为{ provide: LANGUAGE_TOKEN, useValue: navigator.language }

对于测试,我在所有测试中都在 TestBed 中覆盖它们,因此测试不会从 Chrome 浏览器中进行 karma 测试注入任何内容,并且基于测试环境的测试没有不同的结果:

TestBed.configureTestingModule({
  declarations: [
    MyComponent, RouterStubComponent,
  ],
  imports: [
    MatToolbarModule, RouterTestingModule, MatIconModule, MatButtonModule,
  ],
  providers: [
    {provide: LOCALE_ID, useValue: 'en-US' },
  ]
}).compileComponents();

TestBed.overrideProvider(LOCATION_TOKEN, {useValue: locationStub});
TestBed.overrideProvider(LANGUAGE_TOKEN, {useValue: 'en-US' });
Run Code Online (Sandbox Code Playgroud)

现在我在组件中有一些依赖于语言环境和浏览器语言的逻辑,所以我需要模拟它们。模拟LANGUAGE_TOKEN非常简单,几乎没有不便:

TestBed.configureTestingModule({
  declarations: [
    MyComponent, RouterStubComponent,
  ],
  imports: [
    MatToolbarModule, RouterTestingModule, MatIconModule, MatButtonModule,
  ],
  providers: [
    {provide: LOCALE_ID, useValue: 'en-US' },
  ]
}).compileComponents();

TestBed.overrideProvider(LOCATION_TOKEN, {useValue: locationStub});
TestBed.overrideProvider(LANGUAGE_TOKEN, {useValue: 'en-US' });
Run Code Online (Sandbox Code Playgroud)

但是, …

dependency-injection angular

5
推荐指数
1
解决办法
4400
查看次数

声明更改会触发 onIdTokenChanged

文档说这个函数

添加一个观察者来监视已登录用户的 ID 令牌的更改,其中包括登录、注销和令牌刷新事件。

我的问题是,这是否意味着对 id 令牌进行任何更改(包括对声明的更改),或者仅意味着登录、注销和令牌刷新?

我的用例是,我想推送授权更改,如果他们失去了某些权限,则应立即禁止他们使用新禁止的资源,而不仅仅是在下一次加载时。

firebase firebase-authentication

5
推荐指数
1
解决办法
706
查看次数

如何在@angular/google-maps 模块中用自定义图标替换谷歌地图标记图标

组件.html:

  <google-map (mapClick)="click($event)" 
  [center]="center" [options]="options" height="500px" width="100%"
    [zoom]="zoom">

    <map-marker (mapClick)="openInfoWindow(marker)" [clickable]="true"
  
    *ngFor="let marker of markers" [position]="marker.position" [label]="marker.label"
      [title]="marker.title" [options]="marker.options">
    </map-marker>
    <map-info-window>Info Window content</map-info-window>
  </google-map>
Run Code Online (Sandbox Code Playgroud)

组件.ts:

options: google.maps.MapOptions = {
    zoomControl: true,
    scrollwheel: false,
    disableDoubleClickZoom: true,
    maxZoom: 15,
    minZoom: 8,
  }
Run Code Online (Sandbox Code Playgroud)

我试过在选项中添加带有 url 值的图标属性,在地图标记中传递输入但没有任何效果

https://github.com/angular/components/tree/master/src/google-maps#readme

angular-material angular

5
推荐指数
1
解决办法
3186
查看次数

角形防火罩如何组合?

AngularFire 身份验证防护文档显示了允许身份验证的不同方法。

仅管理员用户:

const editorOnly = pipe(customClaims, map(claims => claims.role === "editor"));
Run Code Online (Sandbox Code Playgroud)

仅限自己:

const onlyAllowSelf = (next) => map(user => !!user && next.params.userId === user.uid);
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将编辑器/管理员用户自己可以打开组件的两者结合起来。

angularfire2 angular-router-guards

4
推荐指数
1
解决办法
1157
查看次数

Android:启动画面分辨率

我对这个主题做了很多搜索,但一切都是徒劳的。我正在为我的 Android 应用程序引起轰动,但问题是图像在不同屏幕上会扭曲。我已经阅读了谷歌的“支持多屏幕”文章,但它仍然不起作用。请告诉我必须放在 ldpi、mdpi、hdpi 和 xdpi 文件夹下的图像的大小?

我尝试了以下操作:替换了 ldpi、mdpi、hdpi、xhdpi 文件夹中的图像。无论如何,如果我能够完美地为纵向模式设置图像,那么在横向模式下它会变得很奇怪。请帮助我伙计们。提前致谢。

android android-resources android-splashscreen

3
推荐指数
1
解决办法
1651
查看次数