我是打字稿的新手。而且我不知道为什么我的帖子变量不能根据输入而改变。
home.component.html
#view
request.es ...
home.component.ts
<input type="text" [(ngModel)]="linearsvcParameters.C"/>
<button (click)="TrainModel()" type="button" >TRAIN MODEL
</button>
}
ClfService .service.ts
public linearsvcParameters: LinearsvcParameter = new LinearsvcParameter(); //this value cant change
public TrainModel(){
this.clfService.TrainModel(this.linearsvcParameters).subscribe((modelAccuracy => {
this.modelAccuracy = modelAccuracy;
console.log(modelAccuracy);
}));
Linearsvc Class
public TrainModel(linearsvcParameters: LinearsvcParameter): Observable<ModelAccuracy>{
console.log('classification.ts' + LinearsvcParameter);
return this.http.post<ModelAccuracy>(SERVER_URL + 'train', linearsvcParameters);
}
}
你可以帮我解释一下这里想念的吗?答案 0 :(得分:1)
问题解决了,谢谢你的回应。我忘记添加表单模块,因此我将此模块添加到 app.module.ts
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
答案 1 :(得分:0)
此问题是您绑定到对象C
中的linearsvcParameters
属性,
[(ngModel)]="linearsvcParameters.C"
但是当响应从服务到达时,您没有更新该属性,而是this.modelAccuracy = modelAccuracy;
您必须选择,绑定到this.modelAccuracy
的{{1}}属性或更新订阅中的该属性。
home.component
<强>更新强> 您拥有的另一个选项是更改绑定到您正在更新的属性。
this.linearsvcParameters.C = modelAccuracy;
让我知道它是如何运作的!
答案 2 :(得分:-1)
据我所知,问题不在于TS,而在于你如何使用Observable。您应该在构造函数或Observable
方法中订阅NgOnInit
。
之后,您将能够使用从observable传递给property的值。