gpt4 book ai didi

javascript - Angular 6 [ngClass] 无法在 component.js 中使用 bool 值

转载 作者:太空狗 更新时间:2023-10-29 17:51:16 25 4
gpt4 key购买 nike

我想做的是在 ngState 为真时隐藏文本。单击某个元素时,该状态将设置为 true。 [ngClass] 然后应该添加隐藏类并隐藏文本。第一个片段来自 component.ts,它概述了 bool 变量和将其设置为 true 的函数。

export class MainMenuComponent implements OnInit {
ngState = false;
constructor() {

}
newGame(){
this.ngState = this.ngState === true ? false : true;
console.log(this.ngState);
}
}

下一个片段是组件 html

<canvas id='sparkCanvas'></canvas>
<div class="menuBox">
<div class="title" [ngClass]="{'hide': ngState}">Dark Shards</div>
<div class="optContainer">
<ul>
<li *ngFor="let opt of opts" class="{{opt.class}}" [ngClass]="{'hide': ngState}" (click)="opt.f()">{{opt.n}}</li>
</ul>
</div>
</div>

下面是隐藏类

.hide{
opacity: 0;
}

当我将 [ngClass]="{'hide': ngState}"替换为 [ngClass]="{'hide': true}"

然后它将按预期工作。我在这里不明白什么?

这是一个链接到我的代码和一个工作示例: https://stackblitz.com/edit/angular-fg48ro?file=src%2Findex.html

最佳答案

尝试不使用 Quote

  <li *ngFor="let opt of opts" class="{{opt.class}}" [ngClass]="{hide: ngState}"  (click)="opt.f()">{{opt.n}}</li>

编辑

当我看到你的代码时,问题与 Angular 无关,但与 javascript 上下文有关,你需要像这样指定上下文

' f: this.newGame.bind(this),'

DEMO

关于javascript - Angular 6 [ngClass] 无法在 component.js 中使用 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51053686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com