我有一个组件,它有两个依赖项:一个是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)
但是, …
文档说这个函数
添加一个观察者来监视已登录用户的 ID 令牌的更改,其中包括登录、注销和令牌刷新事件。
我的问题是,这是否意味着对 id 令牌进行任何更改(包括对声明的更改),或者仅意味着登录、注销和令牌刷新?
我的用例是,我想推送授权更改,如果他们失去了某些权限,则应立即禁止他们使用新禁止的资源,而不仅仅是在下一次加载时。
组件.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
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)
我的问题是如何将编辑器/管理员或用户自己可以打开组件的两者结合起来。
我对这个主题做了很多搜索,但一切都是徒劳的。我正在为我的 Android 应用程序引起轰动,但问题是图像在不同屏幕上会扭曲。我已经阅读了谷歌的“支持多屏幕”文章,但它仍然不起作用。请告诉我必须放在 ldpi、mdpi、hdpi 和 xdpi 文件夹下的图像的大小?
我尝试了以下操作:替换了 ldpi、mdpi、hdpi、xhdpi 文件夹中的图像。无论如何,如果我能够完美地为纵向模式设置图像,那么在横向模式下它会变得很奇怪。请帮助我伙计们。提前致谢。