2017-08-29 89 views
0

我怎樣才能價值指數或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> 

回答

0

你可以做這

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); 
} 
+0

它說的類型number爲不能分配給字符串類型的參數。也希望它成爲一個數字。謝謝 – Joseph

0
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); 
} 
1

添加鄰療法的答案,

你要明白,你正在一個異步調用。

所以如果你需要任何地方訪問ID,您需要獲得對異步調用的完成,而不是在這之前。

這就是原因,你需要調用onEditDetail()內訂閱塊作爲最後一個參數。 有3個參數可供訂閱。

  1. 數據是通過調用返回,
  2. 錯誤,如果任何出錯。
  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); 
    }); 
} 
+0

它說類型號的參數不能分配給字符串類型的參數。也希望它成爲一個數字。感謝 – Joseph

+0

@Joseph您onEditDetail改變(ID:字符串)onEditDetail(ID:任意) –

+0

你有任何想法,爲什麼在+參數那裏有一個「+」號?目的是什麼? – Joseph