方法在角打字稿类为空之后HTTP GET

我对角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 Get方法没有正确实例化,或者我必须映射到另一个数组才能访问类中的公共方法。

我试过一些解决方法,但代码获取不必要的污垢。

请善待。我真的做了功课,一直没能找到一个清晰的问题。

编辑

我已经改变了类了一下,现在我可以走这条路:

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)我可以使用对象分配

this._httpClient.Get<Book[]>(url).subscribe(

(books: Book[]) => {

const tempbooks = new Array<Book>();

books.forEach(book => {

tempbooks.push(Object.assign(new Book(),book);

}

}

)

现在,它将是完美的在使用Http服务的类中添加一个post函数,b我会在一个新的问题中打开它。

快乐编码!

Josep。

回答:

你必须真正让书的对象:

this._httpClient.Get<Book[]>(url).subscribe(

(books: Book[]) => {

this.books = books.map((b) => new Book(b));

}

)

你必须创建一个构造函数的“任意”对象:

constructor(book?: any) { 

if (book != null) {

this.title = book.title;

this.author = book.author;

this.read = book.read;

}

}

以上是 方法在角打字稿类为空之后HTTP GET 的全部内容, 来源链接: utcz.com/qa/261365.html

回到顶部