如何在Angular2中传递楼上的参数

时间:2016-12-07 14:21:23

标签: javascript angular

我必须将参数传递给函数。

spark.yarn.executor.nodeLabelExpression

这对我来说非常重要,因为我必须将<select class="chooseWatchlist" (change)="updateWatchlistTable(item.name)"> <option *ngFor="let item of _items">{{ item.name }}</option> </select> 参数传递给http请求。但不幸的是,角度没有看到那个变量,因为它有点在楼下......函数必须在选择框中选择item.name实际选择的选项。该功能将在该框中的每个值更改时执行。

有没有解决办法?或者也许还有另一种解决方法?

最后,http请求:

item.name

private updateWatchlistTable(name) { this.http.get('http://localhost:8080/api/points/getValue/' + name) .subscribe(res => this._watchlistElements = res.json()); console.log(name); } 返回undefined。

正如您所看到的,我需要使用该参数console.log(name)来使此http请求正常工作。任何帮助赞赏。 :)

3 个答案:

答案 0 :(得分:2)

使用NgModel指令将所选值存储在组件的变量中,然后将该变量作为参数传递给http请求,让我们调用该变量selectedValue:< / p>

<select class="chooseWatchlist" [(ngModel)]="selectedValue"
      (ngModelChange)="updateWatchlistTable(selectedValue)">
    <option *ngFor="let item of _items" [ngValue]="item.name">{{ item.name }}</option>
</select>

您只需在组件中声明名称为selectedValue的变量:

selectedValue: string;

详细了解NgModel指令here

答案 1 :(得分:2)

使用ngValue,您可以绑定值和
使用(ngModelChange)="$event.name"您可以访问该名称 使用[(ngModel)]="selectedItem",您可以获取并设置选择的项目。

<select class="chooseWatchlist" [(ngModel)]="selectedItem" (ngModelChange)="updateWatchlistTable($event.name)">
   <option *ngFor="let item of _items" [ngValue]="item">{{ item.name }}</option>
</select>

答案 2 :(得分:1)

您应该能够使用所选值传递给该函数。为此,您可以从事件对象($event)访问当前元素的值。

<select class="chooseWatchlist" (change)="updateWatchlistTable($event.currentTarget.value)">
    <option *ngFor="let item of _items" [value]="item.name">{{ item.name }}</option>
</select>