Как передать значения флажков в AngularJS, используя ng-модель в сочетании с ng-repeat

0

У меня есть страница, которая предлагает пользователям возможность поиска статей путем ввода поискового запроса и фильтрации результатов, если это необходимо.

Вначале фильтры содержали несколько блоков выбора со значениями, полученными из ajax-вызова, и выбранные значения были отправлены обратно с использованием ng-модели. Он работал нормально.

Теперь требование состоит в том, чтобы преобразовать несколько полей выбора в флажки, и мне удалось создать этот флажок.

Я сталкиваюсь с проблемами, когда пользователи вводят поисковый запрос и выбирают один из флажков, я не могу получить выбранное значение флажка в app.js для фильтрации результатов.

<div class="col-lg-3">
    <h3 class="m0 pb-lg">Filters</h3>
    <div class="form-group mb-xl">
         <form method="get" ng-controller="SearchController as form" class="form-horizontal">
            <label class="control-label mb">By Type of Study</label><br><label class="checkbox-inline c-checkbox" ng-repeat="s in form.typeOfStudies">
            <input type="checkbox" ng-model="search.typeOfStudy" ng-true-value="'YES'" ng-false-value="'NO'">
                <span class="fa fa-check"></span>{{s}}</input>
            </label>
            <br>
        </form>
    </div>
</div>
</div>

Приложение app.js содержит:

 $scope.getById = function (id) {
           if (id.typeOfStudy){
            $.each(id.typeOfStudy, function() {
                    if (count < id.typeOfStudy.length) {
                        count++;
                        qTypeOfStudy += "'" + this + "',";
                    }
                    else if (count == id.typeOfStudy.length) {
                        qTypeOfStudy += "'" + this + "'";
                    }
            })
        }
  }

getById передается при отправке основного текста в строке поиска на странице.

  • 0
    Вы можете использовать ng-click для значения в контроллер
  • 0
    ты можешь написать плункер?
Показать ещё 4 комментария
Теги:
checkbox

1 ответ

0

Я использую какое-то значение из списка ng-repeat чтобы быть идентификатором, вы можете иметь что-то, что у вас есть, s in form.typeOfStudies. что-то вроде этого:

<div ng-repeat="modelList in modelsLists">
<input type="checkbox" ng-model="selection.ids[modelList.id]" id="{{modelList.id}}"/>
</div>

Инициализация в JS:

$scope.selection = {
        ids: {}
    };

и установите флажок:

if($scope.selection.ids[id]){
    // do something
}

Ещё вопросы

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