gpt4 book ai didi

javascript - Angular 4 : Passing input value to service

转载 作者:行者123 更新时间:2023-11-30 09:24:49 25 4
gpt4 key购买 nike

我是 Angular 4 的新手。我有一个绑定(bind)到 View 的变量“md_id”,如下所示。

HTML:

                    <tr *ngFor="let item of driverData">
<td class="align-right" id="md_id" [(ngModel)]="item.md_id" name="driverId" ngDefaultControl (click)="runPromo()">{{item.driver_name}}
</td>
</tr>

JSON:

[{"md_id": 1, "driver_name": "A"}, {"md_id": 2, "driver_name": "B"}, {"md_id": 3, "driver_name": "C"}, {"md_id": 4, "driver_name": "D"}]

我希望基于所选的 md_id 值,它应该将特定的 md_id 值传递给另一个服务,该服务可以根据选择相应地显示结果。

md_id 的选定值应传递给以下服务。

服务:

public getName(md_id){
return this.http.get(url+'/api/names?md_id='+md_id)
.map((resService: Response) => resService.json())
}

组件:

 this.calendarService.getName(this.md_id).subscribe(data => this.promoName = data);

能否请您帮助我了解如何将 View 中绑定(bind)的一项服务的值传递给另一项服务。

我是不是漏掉了什么?

请帮忙。

最佳答案

要达到预期结果,请使用以下选项

HTML:

将“item”作为 runPromo() 的参数传递

<tr *ngFor="let item of driverData">
<td class="align-right" id="md_id" [(ngModel)]="item.md_id" name="driverId" ngDefaultControl (click)="runPromo(item)">{{item.driver_name}}
</td>
</tr>

组件:

为组件的提供者添加服务

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ],
providers: [CalendarService]
})

将 md_id 分配给服务 - 组件服务调用中的 CalendarService

  constructor(private calendarService: CalendarService) {

this.runPromo = (v) =>{
this.calendarService.getName(v.md_id).subscribe(data => this.promoName = data);
this.promo1= !this.promo1;
}
}

代码示例 - https://stackblitz.com/edit/angular-service-ukuoyd?file=app/app.service.ts

关于javascript - Angular 4 : Passing input value to service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com