Как заставить angularJS ng-модель работать с объектами в выделенных элементах?
У меня проблема с ng-моделью наselect
элемент при передаче объекта изoption
элементы. Итак, представьте, что у нас есть массив столбцов из таблицы с именемcolumns
(определение таблицы), и мы хотели бы создать несколько фильтров на основе этого определения
var columns = [
{name: 'Account ID', type: 'numeric'},
{name: 'Full name', type: 'text'},
{name: 'Date of birth', type: 'date'},
{name: 'Active', type: 'boolean'}
// and so on
];
var filters = [{}];
HTML:
<div class="form-field" ng-repeat="filter in filters">
<select ng-model="filter">
<option value="" disabled>Choose filter</option>
<option ng-repeat="column in columns" ng-value="column">{{column.name}}</option>
</select>
<input type="text" ng-model="filter.value">
</div>
Как видите, мне бы это понравилосьfilter
чтобы получить значениеcolumn
и добавить в него конкретные данные, чтобы в определенный момент мой фильтр мог выглядеть так:
[
{name: 'Account ID', type: 'numeric', value: 123},
{name: 'Active', type: 'boolean', value: 'Yes'}
]
Во всяком случае, я не уверен, что это способ сделать это, но я хотел бы знать, как я могу добиться такого поведения, с нашей записью большого количества кода JS в контроллере.
Я сделал обходной путь, чтобы сделать это с помощьюng-change
минуяfilter
иcolumn.name
найдите столбец вcolumns
массив, получитьtype
обновитеfilter
, но я действительно думаю, что есть более простой ответ на это.