Angularと.Net Core 2.0のハイブリッドテンプレートを使用しています。APIを呼び出すAngular4サービスのベストプラクティス.Net Core
私のコンポーネントページには、いくつかの基準に基づいて人がリストされ、うまく機能します。ただし、各ユーザーには部門IDがあり、別のAPIメソッドから部門名を取得したいと考えています。
すべての情報をリストするSQLビューを作成できましたが、必要なすべてのクエリを返すメソッドを呼び出すことができました。したがって、私のコンポーネントページでは、{{personDeptId}}を使用して部門名を返すサービスを作成する必要があります。
[HttpGet("[action]/{login?}")]
public async Task<String> getUserDeprtString(String login)
{...
}
上記のメソッドは、部門名を正常に返します。私の問題はフロント側の実装です。
私はサービス、DataServiceの作成:
getPersonDepart(login: String): Observable<string> {
return this.http.get(this.baseUrl + 'api/User/getUserDeprtString/' + login).map(this.extractData)
.do(data => console.log('getProduct: ' + JSON.stringify(data)))
.catch(this.handleError);
}
とコンポーネントで:
getName(name: String) {
return this.dataService.getPersonDepart(name); }
とコンポーネントのページで:
{{getPersonDepart(personDeptId)}}
、それは常に500エラーを返す
をなにか提案を?
更新1: エラーが発生しました。私はコンポーネントプロバイダーのサービスについて言及しなければならなかった。私は今apiが正しい応答を返すことがわかります。しかし、それは無限ループ(メソッドをノンストップと呼んでいます!)に行き、私はなぜそれがわかりません。何か案が?
500は内部サーバーエラーを意味します。あなたのコントローラからデビューすることはできますか?私はangular4クライアントとasp.netのWeb APIのバックエンドを使用し、クライアントのためにtypescriptクライアントを生成するswashbuckleを使用する – Andre
私はAPIのURLに行くとき、それは正しい応答を返しますが、私はコンポーネントページ内でそれを使用するとき、 – iAziz
コントローラ機能にブレークポイントを設定します。コードが – Andre