【发布时间】:2018-06-21 10:12:18
【问题描述】:
我想将我的枚举显示为字符串,但它显示为数字。
我正在从 Web 服务接收一个 json 对象并将其映射到我的 typescript 对象
getProperties(): Observable<Property[]> {
return this.http.get<Property[]>(this.getallagentsproperties + '1');
}
export enum LetType {
Notspecified = 0,
LongTerm = 1,
ShortTerm = 2,
Commercial = 4
}
export class Property {
...other stuff...
letType: LetType;
...other stuff...
}
我的组件进行调用并将其添加到相关属性中
import { Component, OnInit } from '@angular/core';
import { Property } from './Property';
import { PropertyService } from '../properties.service';
@Component({
selector: 'app-properties',
templateUrl: './properties.component.html',
})
export class PropertiesComponent implements OnInit {
properties: Property[];
constructor(private propertyService: PropertyService) { }
ngOnInit() {
this.getProperties()
}
getProperties(): void {
this.propertyService.getProperties()
.subscribe(p => this.properties = p);
}
}
当我在我的模板中显示{{property.letType}} 时显示:
4我希望它显示商业广告
我已尝试遵循在我添加的模板中找到的答案 here
{{LetType[property.letType]}}
在我的组件中我添加了
LetType = this.LetType;
但我总是在控制台中收到以下错误
无法读取未定义的属性“4”
我做错了什么?
【问题讨论】:
-
模板中不能直接引用枚举,需要桥接。看到这个答案:stackoverflow.com/questions/37741010/…
标签: angular angular2-template angular5