小编HNi*_*pps的帖子

Angular 2-停止不断更新NgClass

我有一个地图组件,上面有一个视频组件。单击视频时,地图和视频组件会切换类别,因此视频将变为全屏,并带有地图插图。

我正在使用NgClass更新这两个组件的类,但是我注意到在Chrome中运行我的应用程序时,地图元素的类部分在检查器中闪烁。

我检查了一下,看来ngClass从应用启动开始就不断更新类,即使未对组件进行任何更改也是如此。我只想在单击inset元素时更改类。

这是正常行为吗?有什么我可以阻止的吗?

这是我的HTML:

<map class="map" (click)="switchInset('map')" [ngClass]="setClass('map')"></map>
<app-video class="video" (click)="switchInset('video')" [ngClass]="setClass('video')"></app-video>
Run Code Online (Sandbox Code Playgroud)

而我的TS代码:

mapFullscreen: boolean = true;

switchInset(target: string) {
    switch (target) {
        case 'map':
            if (!this.mapFullscreen) {
                this.mapFullscreen = this.mapFullscreen ? false : true;
            }
            break;

        case 'video':
            if (this.mapFullscreen) {
                this.mapFullscreen = this.mapFullscreen ? false : true;
            }
            break;

        default:
            break;
    }
}

setClass(target: string) {
    let classes = {};
    switch (target) {

        case 'map':
            classes = {
                inset: !this.mapFullscreen,
                fullscreen: this.mapFullscreen
            }
            break;

        case 'video':
            classes …
Run Code Online (Sandbox Code Playgroud)

typescript ng-class angular

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

标签 统计

angular ×1

ng-class ×1

typescript ×1