#angular #angular2-ngmodel
#angular #angular2-ngmodel
Вопрос:
<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>
Здесь, используя ngModel в ngFor, я могу отображать данные, но если я хочу обновить / отредактировать эти отображаемые данные, то как это сделать?
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"));
}
В этой функции UpdateUser я хочу обновить данные.Но когда я это делаю, он показывает мне ошибку, которая cmp
не определена.Итак, что делать для использования значения, поступающего из [(ngModel)]=cmp.name
, в методе post???
Комментарии:
1. Какую версию Angular 2 вы используете? В последних версиях это должно быть
let cmp of getUser
, а не#cmp
.2. @AlexanderCiesielski Я использую angular2: 2.0.0-бета-версию.14
Ответ №1:
Измените *ngFor="#cmp of getUser"
на *ngFor="let cmp of getUser"
и проверьте внутри updateUser
функции, как показано ниже, получаете ли вы значение, которое вы изменили, или нет :
updateUser(data:any){
console.log(data);
// if it works you can add your code here to call API
}
Комментарии:
1. Мне нужно использовать # иначе это покажет мне, что ngFor не является собственным свойством
2. и я ничего не получил в console.log () @ranakrunal9