初始渲染时数据显示正常,这意味着如果我有自定义字段的数据,则值会显示在HTML上。
问题是,当我更改自定义字段的值时,更改不会附加回对象,换句话说,出于某种原因,绑定只是一种方式。
我有以下对象:
{
"_id" : BinData(3, "6aUPCzvqTUuzZWlWRJCdPQ=="),
"name" : "MyObject",
"customFields" : [
{
"_id" : BinData(3, "ksRiQNZnuE2BKFpjbQEQaQ=="),
"name" : "Field 1",
"order" : NumberInt(1),
"type" : "string",
"isMultiValue" : false,
"values" : [
"11111"
]
},
{
"_id" : BinData(3, "S9bSzoqy5EafPP0NEdbfCw=="),
"name" : "Field 2",
"order" : NumberInt(2),
"type" : "string",
"isMultiValue" : false,
"values" : [
""
]
}
]
}
我绑定了以下HTML:
<div ng-repeat="customField in customer.customFields">
<p>
{{customField.name}}:
</p>
<p ng-repeat="customFieldValue in customField.values">
<input type="text" class="form-control" ng-model="customFieldValue" />
</p>
</div>
更新: 在@ngLover的建议之后,我得到了绑定在这种情况下正常工作:
这是新对象:
{
"_id" : BinData(3, "FKibZl5WDk2jprg1gY5KAQ=="),
"name" : "MyObject",
"customFields" : [
{
"_id" : BinData(3, "3HUUHy1FMUaxD41JcuYqQw=="),
"name" : "Field 1",
"order" : NumberInt(1),
"type" : "string",
"isMultiValue" : false,
"values" : [
{
"value" : "Data 1"
}
]
},
{
"_id" : BinData(3, "2t0oiy5LukSSuPR9XYKwcA=="),
"name" : "Field 2",
"order" : NumberInt(2),
"type" : "string",
"isMultiValue" : false,
"values" : [
{
"value" : "Data 2"
}
]
}
]
}
新HTML:
<div ng-repeat="customField in customer.customFields">
<p>
{{customField.name}}:
</p>
<p ng-repeat="customFieldValue in customField.values">
<input type="text" class="form-control" ng-model="customFieldValue.value" >
</p>
</div>
答案 0 :(得分:1)
请记住,每个ng-repeat
都有自己的范围,因此,在您的第二个ng-repeat
中,ng-model="customFieldValue"
附加到第二个ng-repeat scope
,而不是外部范围。