当我单击按钮时,什么也没有发生,没有错误。我有以下HTML代码:
<body>
<mat-card>
<mat-card-content>
<span class="mat-display">To see buy/sell data for Apple stock click Go</span>
</mat-card-content>
<mat-card-actions>
<button (click)="getstock()" mat-raised-button color="primary">Go</button>
</mat-card-actions>
</mat-card>
这是组件代码:
export class HomeComponent {
constructor(private api: ApiService){
}
getstock(){
this.api.getBuySellData()
}
}
最后是api.service.ts代码
export class ApiService {
constructor(private http: HttpClient) { }
stock: StocksComponent
list: any[]
stockURL = 'https://localhost:44310/api/stock'
stocksURL = 'https://localhost:44310/api/stocks'
/** POST: */
postStock (stocks) {
this.http.post(this.stocksURL, stocks).subscribe(res => {
console.log(res)
})
}
getBuySellData() {
return this.http.get(this.stockURL)
}
getBuySellDatas() {
return this.http.get(this.stocksURL)
}
}
我找不到错误。
答案 0 :(得分:2)
您没有在import sklearn.linear_model.LinearRegression
def Process(data_y_train, data_x_train, data_x_test,
model_module='sklearn.linear_model.LinearRegression',
model=LinearRegression, predict_method='predict'):
model_fit = model().fit(data_x_train, data_y_train)
predict_call = getattr(__import__(model_module), predict_method)
predicted_values = model_fit.predict_call(data_x_test)
return predicted_values
函数中订阅从Observable
返回的this.http.get()
。由于您想在getBuySellData()
中访问它,因此需要分配一个变量来保存HomeComponent
,然后在该组件中订阅该变量以获取数据。
订阅Observable
时,HTTP请求将触发。
除非您像使用其他方法对POST请求所做的那样进行订阅,否则HTTP请求不会完成。
它看起来应该像这样:
Observable
存储export class HomeComponent {
constructor(private api: ApiService){}
Observable<any> $buySellData;
getstock() {
this.$buySellData = this.api.getBuySellData();
this.$buySellData.subscribe((data: any) => {
// Use the `data` variable to produce output for the user
});
}
}
而不是直接订阅Observable
的返回值的好处是,您可以使用Angular的ApiService
管道来订阅{{ 1}}。看起来像这样:
async
这样,Angular会为您取消订阅,并且您不必将Observable
的已解析值存储在另一个变量中。