Установите флажок с несколькими моделями ng

У меня есть вариант дней для пользователя.

Мой ожидаемый результат будет, когда пользователь нажмет кнопку отправить

  • если выбран понедельник и вторник, это должно быть [1,2]
  • если выбран будний день, он должен быть строкой 'weekdays'

У меня слишком много ограничений, потому что API сильно вложен, поэтому я предпочитаю жестко задавать значение дней. Но я не знаю, как действовать дальше. Единственный способ, которым я могу придумать, - это назначить ng-model для каждого входа и выполнить push, но я чувствую, что это неправильно.

http://plnkr.co/edit/NfTgmsuZlGh6QUVZj8HG?p=preview

Нужна помощь.

2 ответа

Вы можете попробовать таким же образом и в контроллере

  $scope.items = [{"day":"monday","show":"1"},{"day":"tuesday","show":"2"},{"day":"weekdays","show":"weekdays"}];

в HTML

<select ng-model="selection" ng-options="item.show as item.day for item in items">
     <option value="">Please select</option>
</select>

вывод: {{selection}}

Попробуйте так:

<div class="days-group" ng-repeat="timeType in timeTypes">
    <input type="checkbox" id="Weekdays" value="weekdays" ng-model="timeType.isSelected" ng-checked="timeType.isSelected">
    <label for="Weekdays">{{timeType.type}}</label>
</div>

А также controller:

$scope.timeTypes = [
                    { id: 1, type: "weekends", isSelected: false }, 
                    { id: 2, type: "weekdays", isSelected: false }
                   ];

То же самое и для дней.

Проверьте работу jsfiddle ссылка на сайт:

https://jsfiddle.net/avnesh2/oho7qxv1/

Проверьте console для требуемого формата.

Приветствия.