Внутри моего контроллера у меня есть массив таких объектов:
this.set = [{
"display": "Name",
"pass": "name"
}, {
"display": "Subject",
"pass": "subject"
}, {
"display": "Batch",
"pass": "batch"
}];
Я предоставил флажки: name, batch and subject
. Проверка флажков будет фильтровать категорию.
HTML:
<div flex class="filters" layout="row" ng-repeat="menu in menu">
<md-checkbox class="md-primary" ng-model="query.{{menu.pass}}">
{{menu.display}}
</md-checkbox>
</div>
{{menu.display}}
Правильно отображает имена. Теперь я хочу динамически связать и ng-модель. Как это возможно?
Атрибут ng-model уже ожидает угловое выражение, поэтому вбрасывание фигурных скобок внутри не будет работать, вместо этого попробуйте что-то вроде:
<div flex class="filters" layout="row" ng-repeat="menu in set">
<md-checkbox class="md-primary" ng-model="query[menu.pass]">
{{menu.display}}
</md-checkbox>
</div>
Так что теперь он просто устанавливает query.batch
, передавая значение menu.pass.
ДЕМО: https://jsfiddle.net/qvw9bmhe/32/
Просто нажмите на имена и просмотрите обновление объекта запроса.
ng-repeat="menu in menu"
должно бытьng-repeat="menu in menus"
?