【发布时间】:2017-08-15 15:23:27
【问题描述】:
我创建了一个 Angular 2 服务,它使用 http 读取本地 json(以后可能是 rest 服务调用)并返回一个 Observable。
@Injectable()
export class WorkflowDataService {
constructor(private http: Http) { }
getProcessTemplates(): Observable<Response> {
return this.http.get("/assets/jsons/process-templates.json");
}}
正在读取的 json 看起来像这样
{
"process-templates": [
{
"name": "ABC",
"desc": "ABC"
},
{
"name": "XYZ",
"desc": "XYZ"
},
{
"name": "PQR",
"desc": "PQR"
}
]
}
我的目标是在下拉列表中显示名称属性的值。所以,下拉菜单应该有 - ABC、XYZ、PQR。
所以在我的组件中,我正在调用这个服务 -
processTemplates: Observable<Response>;
ngOnInit( ) {
this.workflowDataService.getProcessTemplates()
.subscribe(function(response) {
this.processTemplates = response.json();
console.log(this.processTemplates);
});
}
在 console.log 中,我看到以下输出
如何以可以在下拉菜单中呈现的格式获取输出
<select class="form-control dropdown" (ngModel)="processTemplate"
name="processTemplate" id="processTemplate" required>
<option *ngFor="let processTemplate of processTemplates">
{{ processTemplate.name }}
</option>
</select>
【问题讨论】:
-
您可以将响应映射到服务中的 json。
return this.http.get("/assets/jsons/process-templates.json").map(res => res.json());
标签: angular