开发者问题收集

将 $event 值从 [ngStyle] 传递给 .TS 方法

2020-10-22
835

尝试将 $event 变量从 html 传递到 .ts。

(click)="pruebaSwal($event)" 内部运行正常, 但 [style.background-color] 内部出现问题,抛出: “ERROR ReferenceError:$event 未定义”

html 组件

<tr>
  <input
    type="button"
    value="{{indice}}" 
    id="cp{{contador()}}"
    (click)="pruebaSwal($event)"  <==this one works fine
    [style.background-color]="colorStatus(item.id, $event)">  <== i catch the id, but NOT the $event
</tr>

ts 组件

colorStatus(_id, _event){

        let cambio =  this.allActivity[_id] //this works fine
        let ivi = _event.path[0].id         //not finding the _event var
           
         switch (_id) {
           ...some case functions
           }
2个回答

$event 仅在事件绑定(例如:click、focus 等)中传递给组件,并包含有关事件的信息。 在您的例子中,您没有使用事件绑定,而是使用属性绑定,因此没有事件,这就是您收到错误的原因:“ERROR ReferenceError:$event 未定义”

Sara
2020-10-22

不确定我是否理解正确,但也许它会给出一些想法:

<input *ngIf="'cp' + contador() as id"
    type="button"
    value="{{indice}}" 
    [id]="id"
    (click)="pruebaSwal($event)"  <==this one works fine
    [style.background-color]="colorStatus(item.id, id)">

P.S. 在模板中调用函数被认为是一种不好的做法 https://medium.com/showpad-engineering/why-you-should-never-use-function-calls-in-angular-template-expressions-e1a50f9c0496

D Pro
2020-10-28