Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除角2+中类的所有事件;_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 删除角2+中类的所有事件;

Javascript 删除角2+中类的所有事件;,javascript,angular,typescript,Javascript,Angular,Typescript,我刚刚开始用angular5编写代码,我遇到了删除点击事件中所有类事件的需要。 我们在Jquery中有如下内容 $('.m-active').removeClass('m-active'); 我正在angular2+(Typescript)中寻找替代方法。在angular2+中,最好使用绑定而不是jQuery <div [class.my-class]="isMyClass">div 1</div> <div [class.my-class]="isMyClass

我刚刚开始用angular5编写代码,我遇到了删除点击事件中所有类事件的需要。 我们在Jquery中有如下内容

$('.m-active').removeClass('m-active');

我正在angular2+(Typescript)中寻找替代方法。

在angular2+中,最好使用绑定而不是jQuery

<div [class.my-class]="isMyClass">div 1</div>
<div [class.my-class]="isMyClass">div 2</div>
<button (click)="isMyClass = !isMyClass">toggle</button>

在Angular 2+中,最好使用绑定而不是jQuery

<div [class.my-class]="isMyClass">div 1</div>
<div [class.my-class]="isMyClass">div 2</div>
<button (click)="isMyClass = !isMyClass">toggle</button>

您可以使用document.querySelector all删除该类-在下面的示例中-我有两个div-实际上设置为红色/绿色文本,但使用querySelector all-我正在从div中删除红色类

函数toggleRedClass(){
var redDivs=document.querySelectorAll('.red');
if(红色定长){

对于(i=0;i您可以使用document.querySelector all删除类-在下面的示例中-我有两个div-实际上设置为红色/绿色文本,但使用querySelector all-我从div中删除红色类

函数toggleRedClass(){
var redDivs=document.querySelectorAll('.red');
if(红色定长){

对于(i=0;i您可以创建如下指令:

我知道它并不能完全满足您的需要,但我们的想法是创建一个指令,它有一个名为
class
的选择器,然后您可以访问应用程序中的所有类(显然,这个组件应该在您的模块中声明)

然后,您可以在该指令中执行任何您想执行的操作,您可以使用主机绑定来重写类等等


您可以为某个按钮创建事件监听器,将事件监听器的调用传递回此指令,并让它执行任何您想要的操作。

您可以创建如下指令:

我知道它并不能完全满足您的需要,但我们的想法是创建一个指令,它有一个名为
class
的选择器,然后您可以访问应用程序中的所有类(显然,这个组件应该在您的模块中声明)

然后,您可以在该指令中执行任何您想执行的操作,您可以使用主机绑定来重写类等等


你可以为某个按钮创建一个事件监听器,将事件监听器的调用传递回这个指令,让它做你想做的任何事情。

我得到了你的解决方案。但它对我不起作用,因为我使用类根据条件切换组件,所以删除该类并添加它对我来说就像jQuery
isMyClass一样有效e> 是条件。也许你可以分享更多关于你的需求的细节,以便于讨论。我有组件c1,点击事件我将其隐藏,我有组件c2,点击事件我将隐藏c2,并希望显示c1,但我猜removeclass在这里不起作用,因为这些组件彼此不知道我认为会创建复制是一个好主意。我认为使用简单的角度绑定不难实现。您可能应该管理父组件上的条件。我得到了您的解决方案。但它对我不起作用,因为我使用类根据条件切换组件,所以删除该类并添加它对我来说就像我们使用的方式一样对于jQuery
isMyClass
是一个条件。也许你可以分享更多关于你的需求的细节,以便于讨论。我有组件c1,点击事件我隐藏它,我有组件c2,点击它我会隐藏c2并显示c1,但我想removeclass不会在这里工作,因为这些组件是u我认为创建一个复制品是一个好主意。我不认为用简单的角度绑定很难实现。您可能应该管理父组件上的条件。
@Directive({
  selector: '[class]'
})
export class ClassDirective {
  @Input('class') claz;
  private _claz;
  public set claz(claz){
     this._claz = claz;
  }
  public get claz(){
    return this._claz;
  }
  @HostBinding('class') get hostClass(){
    return this.claz;
  }
  constructor(){
    console.log('***');
  }

  ngOnInit(){
    console.log('this.classz',this.claz);
    setTimeout(()=>{

      this.claz= this.claz.replace('milad','');
    },2000)
  }
}