2016-10-21 3 views
0
<div class="form-horizontal" style="margin:auto;" *ngFor="#cmp of getUser"> 
    <div class="form-group"> 
     <label class="col-md-3 control-label">Name:</label> 
     <div class="col-md-8"> 
      <input type="text" class="form-control" id="cname" [(ngModel)]="cmp.name"/> 
     </div> 
    </div> 
<button class="slds-button slds-button--neutral slds-button--brand" (click)="updateUser(cmp)">Save</button> 
</div> 

ここでは、ngForでngModelを使用してデータを表示できますが、この表示データを更新/編集するにはどうすればいいですか?このupdateUser機能でngForの内部にあるngModelの値を取得する方法は?

updateUser(){  
    var body=JSON.stringify({ 

     name:this.cmp.name, 
     //what to do here???? 
    }) 
    let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
    this.http.post('../update.php?id='+matches['id'],body,{ 
      headers:headers; 
    }) 
    .map(res => res.json()) 
    .map((res) => { 
        if (res.success) { 
         this.message = res.message; 
        } 
        else{ 
         this.err="Something went wrong"; 
        } 

     }) 
     .subscribe(
      data=>this.updUser=JSON.stringify(data), 
      error=>alert(error), 
      msg=>console.log("done")); 
    } 

私はcmpは、POSTメソッドで[(ngModel)]=cmp.nameからの値を使用するために何をすべきかundefine.Soであることを私にエラーを見せていることを行うときdata.Butを更新したいです?

+0

あなたは角度2のどのバージョンを使用していますか?最新のバージョンでは、 '#cmp'ではなく' 'getUser''を' 'let cmp 'にする必要があります。 –

+0

@AlexanderCiesielski私はangular2を使用しています:2.0.0-beta.14バージョン –

答えて

0

変更*ngFor="let cmp of getUser"から*ngFor="#cmp of getUser"、あなたが変更されたりしていない値になっている場合は、以下のようupdateUser関数の内部チェック:

updateUser(data:any){ 
    console.log(data); 

    // if it works you can add your code here to call API 
} 
+0

それ以外の場合はそれを表示する必要がありますngForはネイティブプロパティではありません –

+0

と私はconsole.log()@ ranakrunal9 –

関連する問題