Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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
带ViewChild的代码中的Angular 5触发器事件_Angular_Angular5_Viewchild - Fatal编程技术网

带ViewChild的代码中的Angular 5触发器事件

带ViewChild的代码中的Angular 5触发器事件,angular,angular5,viewchild,Angular,Angular5,Viewchild,在角度上,是否可以通过typescript中的方法触发HTML中定义的更改事件 我通过ViewChild抓取选择器 @ViewChild'org3'org3选择器:HTMLSelectElement; 并且该元素有一个更改事件集: <select class="form-control" id="orgLevel3" name="orgLevel3" #org3 (change)="onOrg3Change($event.target.value, org4, org5)"

在角度上,是否可以通过typescript中的方法触发HTML中定义的更改事件

我通过ViewChild抓取选择器

@ViewChild'org3'org3选择器:HTMLSelectElement; 并且该元素有一个更改事件集:

<select class="form-control" id="orgLevel3" name="orgLevel3" #org3
        (change)="onOrg3Change($event.target.value, org4, org5)">
    <option>-- Select --</option>
    <option *ngFor="let name of validOrgLevel3" value="{{name.id}}">
        {{name.name}}
    </option>
</select>
其中org4和org5只是另外两个select元素


如果我希望根据我通过代码所做的事情调用该方法,比如手动更改选择的值,如果我以某种方式触发该事件,或者我的代码是否应该手动调用onOrg3Change方法,因为我已经获得了对select elemetn的引用?

一旦值发生更改,您需要手动触发事件。Angular不知道任何html元素值的值是否会从代码中更改,这意味着不会通过交互进行更改

可以通过以下方式发出事件:

@ViewChild('org3') org3: ElementRef;

this.org3.nativeElement.value = 'two';
this.org3.nativeElement.dispatchEvent(new Event('change'));

看到这个简单的

我看到你的例子是可行的,但是当我设置我的值时,它实际上根本没有改变下拉列表:我将它设置为一个id,它肯定在validOrgLevel3数组中。我没有在控制台中得到任何错误,但是选择器没有改变。它确实改变了,我已经用完全相同的代码更新了演示链接。再次检查演示。