後にnullで私は角2上だとそうのようなクラスをコード化:コンポーネントでサーバーからデータを取得するために、次にメソッドはHTTP GET
export class Book{
title: string;
author: string;
read: integer;
private: _author;
constructor(author: string) {
this._author = author
}
public incRead(times: integer){
this.read = this.read + times;
}
}
:
this._httpClient.Get<Book[]>(url).subscribe(
(books: Book[]) => {
this.books = books;
}
)
しかし、コンポーネントのBooks配列のメンバーのいずれかで、関数book.incRead(3)にアクセスすることはできません。
たぶんHttpClientを取得する方法は正しくインスタンス化しないか、私はクラスのパブリックメソッドへのアクセスを得るために別の配列にマッピングする必要があります。
私はいくつかの回避策を試してみたが、コードは不必要に汚れを取得します。
親切にしてください。私は本当に宿題を終え、これほど明確な質問を見つけることができませんでした。私ができる:
export class Book{
title: string;
author: string;
read: integer;
author: string;
constructor() {
}
public incRead(times: integer){
this.read = this.read + times;
}
}
とサーバ(HttpClient not running constructorこのアプローチを使用して)からデータを取得するために:私はクラスを少し変更しましたし、今私はこの道を行くことができ
EDIT
オブジェクトの割り当てを使用する
this._httpClient.Get<Book[]>(url).subscribe(
(books: Book[]) => {
const tempbooks = new Array<Book>();
books.forEach(book => {
tempbooks.push(Object.assign(new Book(),book);
}
}
)
ここでは、Httpサービスを使用してクラス内に投稿機能を追加するのに最適です。b私は新しい質問でそれを開きます。
コーディングハッピー!
ジョセップ。
を? – Aravind
私はHttpClient get関数によって生成された各オブジェクトに対してincReadメソッドを使用しようとしています。 httpClientがデータ(ブック配列、プロパティのみ)を取得する場合、メソッドは使用できません。 –