【发布时间】:2016-04-03 10:18:02
【问题描述】:
我尝试使用 Angular2 的一种数据绑定方式将输入字段值绑定到 JSON 属性。
JSON 对象如下所示:
[
{
"name": "my name",
"list": [
{
"date": "0101970",
"list": [
{
"timespan": "6-7",
"entries": [
{
"name": ""
},
{
"name": ""
},
{
"name": ""
}
]
}
]
}
]
}
]
我想将该值绑定到entries 的特定name 属性。
这就是我尝试进行途中绑定的方式:
<div class="col-md-4" *ngFor="#category of categories">
<div>
<div class="col-md-12">
<h1>{{category.name}}</h1>
</div>
</div>
<div *ngFor="#listentry of category.list">
<div class="row">
<div class="col-md-12">
<h2>{{listentry.date}}</h2>
</div>
</div>
<div class="row" *ngFor="#shift of listentry.list">
<div class="row">
{{shift.timespan}}
</div>
<div class="row" *ngFor="#entry of shift.entries">
<div class="col-md-10">
<input type="text" class="form-control" (ngModel)="entry.name">
</div>
</div>
</div>
</div>
</div>
这是我的组件:
export class InputComponent {
public categories:Category[];
constructor(private _dataService:DataService) {
// ... fetch data from the service here
}
}
据我了解,Angular2 中的数据绑定 (ngModel)="attribute" 从视图绑定到模型,[ngModel]="attribute" 以相反的方式绑定。
那么,我的<input type="text" class="form-control" (ngModel)="entry.name"> 有什么问题呢?
当然,我可以使用两种方式的数据绑定,但我还有一些其他限制(禁用表单元素),这些限制仅在按下按钮后应用,而不适用于用户输入。
【问题讨论】:
标签: json angular 2-way-object-databinding