Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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
Angular2如何在不单击的情况下触发(单击)事件_Angular_Typescript_Data Binding_Mouseclick Event - Fatal编程技术网

Angular2如何在不单击的情况下触发(单击)事件

Angular2如何在不单击的情况下触发(单击)事件,angular,typescript,data-binding,mouseclick-event,Angular,Typescript,Data Binding,Mouseclick Event,我想将数据从HTML传递到组件,因此我创建了如下事件: <div id="tutor-price" (click)="passCharge(r.value['charge'])"><span id="month">월 8회</span> <span id="price"> {{r.value['charge']}} </span></div> 如果我点击事件,我会看到一切正常。 但我想自动触发此单击事件,因为我希望组件在加

我想将数据从HTML传递到组件,因此我创建了如下事件:

<div id="tutor-price" (click)="passCharge(r.value['charge'])"><span id="month">월 8회</span> <span id="price"> {{r.value['charge']}} </span></div>
如果我点击事件,我会看到一切正常。 但我想自动触发此单击事件,因为我希望组件在加载完成后立即使用“this.charge”值


有什么方法可以自动触发(单击)事件吗?

给它一个ViewChild引用:

<div #myDiv id="tutor-price" (click)="passCharge(r.value['charge'])"><span id="month">월 8회</span> <span id="price"> {{r.value['charge']}} </span></div>
월 8.회  {{r.value['charge']}
在您的组件中:

@ViewChild('myDiv') myDiv: ElementRef<HTMLElement>;

triggerFalseClick() {
    let el: HTMLElement = this.myDiv.nativeElement;
    el.click();
}
@ViewChild('myDiv')myDiv:ElementRef;
triggerFalseClick(){
设el:HTMLElement=this.myDiv.nativeElement;
el.click();
}

您可以在ngOnInit()中触发单击事件,如下所示: `

展开讨论,如果出现错误“无法读取未定义的属性'nativeElement'或甚至“无法读取未定义的属性单击”,如OP在提供的回答注释中明确指出,请使用:

如果要获取承载组件或指令的元素的引用,则需要指定该元素而不是组件或指令

@ViewChild('myDiv',{read:ElementRef})myDiv:ElementRef;

调用该方法?您可以在ngOnInit(){}上调用该方法,加载页面后将调用该方法。我不能只调用方法passCharge(r.value['charge']);在ngOnInit()中,因为组件无法读取r.value['charge'],如果我添加其他iwse,它将不会编译,它不会打印我想要的内容在您的代码中什么是
r
?什么是HTMLElement?我试过了,但它出现了打印错误。/MainComponent类MainComponent-内联模板:57:8原因:无法读取UndefinedHtmlement的属性“nativeElement”是一个HTML元素,它通常由原生JS中的
document.getElementById()返回。发生此错误是因为您没有声明elementRef。声明您的意思是?1.从“@angular/core”导入{Component,OnInit,ViewChild,ElementRef};2.构造函数(el:ElementRef){}我尝试了这两种方法,但仍然出现了相同的错误:(不要把它放在构造函数中,把它作为局部变量。@Xan,因为我解释了,而不是给出了最快的解决方案。这是如何编译的?passCharge(charge)和this.charge=charge是在类本身内部完成的,而不是在任何方法中完成的?
@ViewChild('myDiv') myDiv: ElementRef<HTMLElement>;

triggerFalseClick() {
    let el: HTMLElement = this.myDiv.nativeElement;
    el.click();
}
<div #tutor id="tutor-price" (click)="passCharge(tutor.value['charge'])"><span id="month">월 8회</span> <span id="price"> {{tutor.value['charge']}} </span></div>
import { Component, OnInit } from '@angular/core';
tutor:any;
@Component({
      //your component decorater tags
})
export class MyComponent implements OnInit{
   ngOnInit(){
      this.charge = this.tutor.value['charge'];
   }
   passCharge(charge){
   this.charge = charge;

}
<div #divClick id="tutor-price" (click)="passCharge(r.value['charge'])">
    <span id="month">월 8회</span> 
    <span id="price"> {{r.value['charge']}} </span>
</div>`
import { Component, OnInit, AfterViewInit, ElementRef, ViewChild } from '@angular/core';
@Component({
  //component decoraters
})
export class MyComponent implements OnInit, AfterViewInit {
  @ViewChild('divClick') divClick: ElementRef;
  ngOnInit() {
      // your other code
    setTimeout(() => {
    this.divClick.nativeElement.click();
    }, 200);
  }
}
@ViewChild('myDiv', { read: ElementRef }) myDiv: ElementRef<HTMLElement>;