При первоначальном рендеринге данные выглядят точными, то есть, если у меня есть данные для настраиваемых полей, значения отображаются в 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>
помните, что каждый ng-repeat
имеет свою собственную область видимости, поэтому во втором ng-repeat
ng-model="customFieldValue"
присоединяется ко второй области ng-repeat scope
, а не к внешней области.
$scope.$parent.someproperty