(无效问题。您无需引用它。谢谢。)
解决方案:使用公共变量而不是$ event。
我想在其他按钮上运行事件。
我使用$event
,但无法立即调用函数。
.html
<p-fileUpload (onSelect)="runSelect($event)"
accept="image/*" #imageUpload></p-fileUpload>
<button (click)="callImageSelect()" #button2></button>
按下button2时,我要在#imageUpload上运行(onSelect)事件。
(onSelect)有一个参数。 (event.files:所选文件的列表)
如果按下button1进行运行,
我想将默认值放入$ event。
所以我发现的方法是使用viewChild
。
.ts
@ViewChild('imageUpload') imageUpload;
...
callImageSelect() {
this.imageUpload.**onSelect()**; // In this section, call (onSelect).
}
runSelect(event) {
event.files.push(defalut);
// Here I put the default value for event.
}
有什么好方法吗?
谢谢您的建议。
答案 0 :(得分:0)
您要触发事件'Default data'
。这里要注意的一点是onSelect
不是onSelect
,而是function
。您不应调用event
,而应调用实际上触发它的event
。
由于您使用的是function
这是自定义事件,因此您必须同时使用某些onSelect
。因此,您应该做的是,访问组件内部的Directive并调用触发事件的函数(EventEmitter);
Directive
@Directive(selector="my-directive")
public class MyDirective {
value : string;
onSelect = new EventEmitter();
public selectionMade(){
this.onSelect.emit(value);
}
}
<button (onSelect)="runSelect($event)" myDirective #myDirective="myDirective"></button>
<button (click)="clickTest()" #button2></button>