Привязка динамических значений к ng-модели флажка с помощью ng-repeat

0

Внутри моего контроллера у меня есть массив таких объектов:

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-модель. Как это возможно?

  • 0
    Вы не думаете, что ng-repeat="menu in menu" должно быть ng-repeat="menu in menus" ?
Теги:
angular-ngmodel
angularjs-ng-model
angularjs-ng-repeat
ng-repeat

1 ответ

2
Лучший ответ

Атрибут 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/

Просто нажмите на имена и просмотрите обновление объекта запроса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню