我试图从BE获取一些字段以映射到我的FE类。 然后我希望字段上的名称填充选择器及其选项。
这是服务
export class FieldsService {
constructor(private _http: Http) { }
public getFields(): Observable<Response> {
return this._http.get('/api/fields');
}
}
Field.class
export class Field {
public name: string;
public id: string;
}
Component.js
export class Component implements OnInit {
public _fields: Field;
constructor(private _fieldsService: FieldsService) { }
ngOnInit() {
this._fieldsService.getFields()
.map(response => response.json())
.subscribe(result => this._fields = result);
}
}
并且最后但不是leaste,Component.html:
<pre>{{_fields | json}}</pre>
<div class="form-group" *ngIf="_fields !== undefiend">
<label for="exampleFormControlSelect1">Fields</label>
<select class="form-control" id="exampleFormControlSelect1" ng-repeat="let field in _fields">
<option>{{field.name}}</option>
</select>
</div>
我猜我做错了映射。 正在阅读教程,但无法看到我做错了什么。
溴
答案 0 :(得分:0)
让我们尝试用* ngFor指令替换你的ng-repeat指令。
<pre>{{_fields | json}}</pre>
<div class="form-group" *ngIf="_fields !== undefiend">
<label for="exampleFormControlSelect1">Fields</label>
<select class="form-control" id="exampleFormControlSelect1" *ngFor="let field of _fields">
<option>{{field.name}}</option>
</select>
</div>
我猜你可以使用.subscribe()方法而无需映射数据。
你注意到我使用了#field; _fields&#34;而不是&#34;在&#34;中,因为在手表中为索引而在手表值。