gpt4 book ai didi

javascript - Angular 2有条件地添加类

转载 作者:行者123 更新时间:2023-12-02 07:22:36 24 4
gpt4 key购买 nike

我的目标是根据 Angular 2 的组件 bool 值设置或删除类。例如:isRed = true > 添加类“red”,如果 isRed = false > 删除类“red”。这怎么可能?代码尝试:

isRed: boolean;

constructor() {
$(document).scroll(function(){
var scrollTop = $(this).scrollTop();
if(window.location.hash) {

} else{
this.isRed = true;
}
if(scrollTop > 50) {
this.isRed = true;
}
else {
this.isRed = false;
}
});
}

和 html:

[ngClass]="{red: isRed}"

最佳答案

最简洁的方式是恕我直言

[class.red]="isRed"

更新

问题的原因是 function in

 $(document).scroll(function(){

应该使用箭头函数

 $(document).scroll(() => {

否则回调中的 this 将不会指向当前类,而是指向调用者。

我建议您尽量避免使用 Angular2 的 jQuery。改用

class MyComponent {

constructor(private elRef:ElementRef) {}

isRed:boolean;

@HostListener('document:scroll', ['$event'])
onScroll(event:any) {
var scrollTop = this.elRef.nativeElement.scrollTop;
// or
$(this.elRef.nativeElement).scrollTop();

if(window.location.hash) {

} else{
this.isRed = true;
}
if(scrollTop > 50) {
this.isRed = true;
}
else {
this.isRed = false;
}
}
}

关于javascript - Angular 2有条件地添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41699774/

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