Как создать словарь, подобный привязке модели в AngularJS
На моей странице есть динамически генерируемые входные теги из базы данных. Эти поля могут выглядеть так:
<input id='customField-Street' type='text' />
<input id='customField-Height' type='text' />
<input id='customField-IsBlack' type="checkbox" />
<select id='customField-Car'>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</select>
Мне нужно найти способ установить привязку модели в следующем формате ключ-значение:
$scope.customFieldsDictionary = [{
"Key": "customField-Street",
"Value": "SomeStreet"
}, {
"Key": "customField-Height",
"Value": "125"
}, {
"Key": "customField-IsBlack",
"Value": "true"
}, {
"Key": "customField-Car",
"Value": "volvo"
}];
Мне нужен формат ключ-значение, так как мой сервис принимает пользовательские данные в этом формате.
Вопрос :
Как установить двустороннюю привязку AngularJS между полями ввода и полем $scope.customFieldsDictionary
в указанном словаре, как формат.
1 ответ:
<div ng-repeat="obj in customFieldsDictionary"> <input ng-model="obj.Value" id='{{obj.Key}}' ng-if="obj.Key == 'customField-Street' || obj.Key == 'customField-Height'" type='text'/> <input ng-model="obj.Value" id='{{obj.Key}}' ng-if="obj.Key == 'customField-IsBlack'" type="checkbox" /> <select ng-model="obj.Value" id='{{obj.Key}}' ng-if="obj.Key == 'customField-Car'" ng-options="car for car in cars"></select> </div>
Контроллер:
function ctrl($scope){ $scope.cars = ["Volvo","Saab"]; $scope.customFieldsDictionary = [{ ... }]; }