【发布时间】:2018-02-23 19:18:39
【问题描述】:
我正在从 API 中提取数据,除非我将我的 JSON 选项编号值绑定到 [value] 标记中,否则一切正常。见例子:
WORKING(从 API 获取的数据在选项中被选中)
<select [(ngModel)]="data.from.api.one" class="form-control">
<option *ngFor="let c of subdimension" [value]="c.name">{{ c.name }}</option>
</select> <!-- select with c.name on value -->
NOT WORKING(未选择数据且第一个选项为空)
<select [(ngModel)]="data.from.api.one" class="form-control">
<option *ngFor="let c of subdimension" [value]="c.value">{{ c.name }}</option>
</select> <!-- select with c.value on value -->
JSON 对象:
subdimension = [{'name': 'sub1','value': 2 },
{'name': 'sub2','value': 4 },
{'name': 'sub3','value': 8}]
我想要做的是将一个数字值绑定到一些选择中,然后将它们全部相加:
data.from.api.one + data.from.api.two...
编辑:
data.from.api 中的组件代码
constructor (public dataService:DataService){
this.dataService.getData().subscribe(datas => {
this.datas = datas;
});
}
getData(){
return this.http.get('https://api.url/').map(res => res.json());
}
datas:Data[];
data = {
from:{api:{one:'',two:'',three:''}}
}
【问题讨论】:
-
您是否有可能将默认值设置为 data.form.api.one 如果是这样,请发布一些设置它的组件。
-
@Sonicd300 已编辑代码
-
非常相似的问题,但 AngularJS:stackoverflow.com/questions/28114970/… ... 问题是“选择”选项必须是字符串,但您尝试直接使用数字值。如果您解析到/从字符串解析,也许会修复?
-
@mc01 刚刚意识到这不仅仅是数字,我在 json 对象上添加了一个新的字符串属性,但仍然是同样的问题。仅当我将 c.name 放在 [value] 上时它才有效(它与从 API 调用的字符串相等)。问题是,如何将它绑定到与 c.name 不同的另一个值?
标签: json angular typescript