通过更改功能将Param的名称发送到Controler。 Angular 2

时间:2017-07-20 13:38:33

标签: angular typescript

我必须从几个输入中创建一些字符串。我想在函数中发送输入名称(HTML元素的名称)作为第二个参数。

<input [(ngModel)]="programSearched" name="programSearched"(ngModelChange)="stringBuilderOnChageMaker(programSearched,??programSearched.name??)" </input>

类似这样的东西,因为我有不同的输入和相同的onchange动作,我想知道输入 正在调用我的方法。

stringBuilderOnChageMaker(value, type) {
    if (type == X) {
    ...
    } else if (type == Y) {
    ...
    }
}

一个解决方案是发送像sound这样的东西,如#34; program&#34;或1,但看起来不太好,如果我发送id或元素名称,它看起来会更好。

1 个答案:

答案 0 :(得分:0)

您可以将$event参数传递给您的更改方法。这将为您提供已更改的对象。假设您的对象有一个名称字段,它将如下所示:

<强> HTML

(ngModelChange)="stringBuilderOnChageMaker(programSearched, $event)"

<强> TS

stringBuilderOnChageMaker(value, event) {
    console.log(event); // check what this logs
    const name = event.name;

    if (name == X) {
    ...
    } else if (name == Y) {
    ...
    }
}