角度2动画* ng仅适用于一个元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了角度2动画* ng仅适用于一个元素相关的知识,希望对你有一定的参考价值。

我在* ngFor中使用动画。当我点击并执行动画时,它会在循环中为所有元素设置动画,但我希望动画只有一个。我怎样才能做到这一点 ? .................................................. .................................................. .................................................. ...

http://joxi.ru/82QYVWGSjBRGM2

   @Component({
    selector: 'app-popular-sensor',
    templateUrl: './popular-sensor.component.html',
    styleUrls: ['./popular-sensor.component.css'],
    animations: [
        trigger('focusPanel', [
            state('in', style({
                height: '20px'
            })),
            state('out', style({
                height: '*',
            })),
            transition('in => out', animate('400ms ease-in-out'))
        ])
    ]
})

export class PopularSensorComponent implements OnInit {

    goods;
    state = 'in';

    constructor(private goodsService: GoodsService) {
        goodsService.getGoods()
            .subscribe(goods => {
                this.goods = goods;
                console.log(this.goods);
            });
    }

    toggleChar() {
        this.state = this.state === 'in' ? 'out' : '';
    }

    ngOnInit() {

    }

}

HTML:

  <div *ngFor="let g of goods"
         class="col-sm-4 col-xs-12">
        <div class="sensor-block">

            <div class="char_block"
                 [@focusPanel]="state">
                <small *ngFor="let c of g.charact">{{c.name}}</small>
            </div>

            <div class="characteristic"
                 (click)="toggleChar()">Все характеристики смарт стола
            </div>
        </div>
    </div>
答案

“key”不是使用全局变量,而是变量属于对象“g”

<div class="char_block"
                         <!--g.state-->
                 [@focusPanel]="g.state"> 
                <small *ngFor="let c of g.charact">{{c.name}}</small>
            </div>
                 <!--change g.state-->
            <div class="characteristic" 
                 (click)="g.state=='in'? 'out':'in'">Все характеристики смарт стола
            </div>

以上是关于角度2动画* ng仅适用于一个元素的主要内容,如果未能解决你的问题,请参考以下文章

角度数据表排序仅适用于1列?

角度多重拖放(ng2-dragula)

CSS3 动画仅适用于 webkit? [关闭]

AngularJS ng-keydown 指令仅适用于 <input> 上下文?

导航组件共享元素转换适用于输入,但不适用于弹回

仅适用于某些路线的角度通用渲染