angular - 如何将对象中的对象转换为 Angular 类(类型)

标签 angular typescript

如何在下面的示例中将 obj.category 转换为 Category 类型?

我需要它来设置下拉列表中的选定选项。

export class Category{
    id: number;
    name: string;

    constructor(obj: any) {
        this.id = obj.id;
        this.name = obj.name;
    }
}


export class Post {
    category: Category[];

    constructor(obj: any) {
        this.category = obj.category;
    }
}

类别服务如下所示:

getCategories(): Promise<Category[]> {
    return this.http.get(this.appConfig.apiEndpoint + 'categories/').toPromise()
  .then(response => response.json().map(obj => new Category(obj)))
  .catch(this.handleError);
}

API 响应:

[{"id":1,"name":"cat1"},{"id":2,"name":"cat2"}]

模板:

<select multiple name="category" [(ngModel)]="obj.post.category">
    <option  *ngFor="let category of categories" [ngValue] = "category">
       {{category.name}}
    </option>
</select>

最佳答案

可能的答案

export interface Category {
 name: string;
 prop: string;
}
export class Post {
    category: Category[];
    constructor(obj: any) {
        this.category = obj.category as Category[];
    }
}
`

关于angular - 如何将对象中的对象转换为 Angular 类(类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47748170/

相关文章:

angular - 如何从管道加载 JSON?

javascript - Angular 剑道网格

typescript 不忽略 node_modules

angular - 如何忽略 TypeScript 错误 TS2339 - 类型上不存在属性

angular - 基于外部数据的动态路由

css - Angular 单选按钮 :checked

typescript - 无法使用 DI 注入(inject)类

typescript - 生成一个类型,其中每个可为空的值都变为可选

javascript - Angular8 充满了 HttpClient 响应头

启用 ivy 时的 Angular 循环依赖