Учитывая структуру данных, которая содержит массив объектов JavaScript, как я могу привязать определенную запись из этого массива к полю ввода с помощью Angular?
Структура данных выглядит следующим образом:
$scope.data = {
name: 'Foo Bar',
fields: [
{field: "F1", value: "1F"},
{field: "F2", value: "2F"},
{field: "F3", value: "3F"}
]
};
Массив fields
содержит несколько экземпляров данной структуры, причем каждая запись имеет как атрибут field
, так и атрибут value
.
Как связать элемент управления input
с атрибутом поля value
элемента массива с помощью field
F1
?
<input ng-model="???"/>
Я знаю, что я мог бы связывать все поля с помощью ng-repeat
, но это не то, что я хочу. Вышеприведенные данные являются всего лишь примером из гораздо большего списка полей, где я хочу привязать заранее определенные подмножества полей к элементам управления на экране. Подмножество не основано на атрибутах в записях массива, но известно во время разработки страницы.
Итак, для приведенного выше примера я попытался привязать F1 к одному входу на странице, а F2 - к другому. F3 не будет привязан к элементу управления.
Я видел примеры, в которых функция была использована в ng-model
, но она не работает с Angular 1.1.0.
Есть ли еще один умный способ привязать поле ввода к определенной записи массива?
Вот сценарий, который имеет пример, но не работает, поскольку он пытается использовать функцию в атрибуте ng-model
: http://jsfiddle.net/nwinkler/cbnAU/4/
Обновление
В соответствии с приведенной ниже рекомендацией, это должно выглядеть так: http://jsfiddle.net/nwinkler/cbnAU/7/