【问题标题】:push checked checkbox value with multiple ng-model使用多个 ng-model 推送选中的复选框值
【发布时间】:2017-01-01 05:20:41
【问题描述】:

我有用户的天数选项。

当用户点击提交时,我的预期输出是

  • 如果选择星期一和星期二,则应为[1,2]
  • 如果选择工作日,则应为字符串'weekdays'

我在这里有太多的限制,因为 api 嵌套很重,所以我更喜欢硬编码天的值。但我不知道如何进一步进行。我能想到的唯一方法是将 ng-model 分配给每个输入并进行推送,但我觉得这不合适。

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

需要帮助。

【问题讨论】:

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-model angularjs-ng-options


【解决方案1】:

你也可以这样试试 在控制器中

  $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}}

【讨论】:

    【解决方案2】:

    试试这个方法:

    <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 以获取所需格式。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2016-09-06
      • 2016-02-27
      • 2016-09-09
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多