通行证ID(索引)onEditDetail()参数
问题描述:
我怎样才能价值指数或ID传递给EditDetail()的参数。我希望它被放在onEditDetail()的括号内有一次,我在HTML点击onEditDetail()通行证ID(索引)onEditDetail()参数
ngOnInit() {
this.route.params
.subscribe((params: Params) => {
this.id = +params['id'];
this.user = this.userService.getUser(this.id);
});
}
onEditDetail(id: string) {
console.log(id);
}
用户detail.component.html
<div class="container">
<div class = "row">
<div class="col-md-3"></div>
<div class = "col-md-8">
<div class="card">
<div class="card-header">
{{ user.l_name}} 's Complete Information<span class="pull-right"><input class="form-control" placeholder="Search User" name="srch-term" id="srch-term" type="text"></span>
</div>
<table class="table table-responsive">
<thead class="thead-default">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Contact Number</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ user.f_name }}</td>
<td>{{ user.l_name }}</td>
<td>{{ user.contact_no }}</td>
<td><button class=" btn btn-primary" style="cursor: pointer;" (click)="onEditDetail()">Edit</button> </td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
答
你可以做这
ngOnInit() {
this.route.params
.subscribe((params: Params) => {
this.id = +params['id'];
this.user = this.userService.getUser(this.id);
// Your method call
this.onEditDetail(this.id);
});
}
onEditDetail(id: string) {
console.log(id);
}
答
ngOnInit() {
this.route.params
.subscribe((params: Params) => {
this.id = +params['id'];
this.onEditDetail(this.id); //call onEditDetails and pass id to it.
this.user = this.userService.getUser(this.id);
});
}
onEditDetail(id: any) {
console.log(id);
}
答
添加邻疗法的答案,
你要明白,你正在一个异步调用。
所以如果你需要任何地方访问ID,您需要获得对异步调用的完成,而不是在这之前。
这就是原因,你需要调用onEditDetail()内订阅块作为最后一个参数。 有3个参数可供订阅。
- 数据是通过调用返回,
- 错误,如果任何出错。
- 完成后,如果你想做点什么。
在你的情况下,作为第三个参数,你必须调用onEditDetail方法
ngOnInit() {
this.route.params
.subscribe((params: Params) => {
this.id = +params['id'];
this.user = this.userService.getUser(this.id);
// 3rd parameter, this is where call is subscribe is completed
this.onEditDetail(this.id);
});
}
它说的类型number为不能分配给字符串类型的参数。也希望它成为一个数字。谢谢 – Joseph