AngularJS多个复选框有疑问(Angular Material)

王冠

我正在尝试使用相同的ng-model获取多个Angular Material复选框。我有两个问题:如何获取默认选中的复选框,以及如何使这些复选框中的至少一个成为必需。我尝试了ng-checked,但随后无法通过表单发布值。

的HTML

      <label for="inputPassword3" class="col-sm-2 control-label">Školski sat *</label>
      <div class="col-sm-10" >
        <span class="col-sm-2" ng-repeat="period in periods">
          <md-checkbox ng-model="form.periods[period]" ng-click="toggle(period, selected)">
            {{ period }}. sat
          </md-checkbox>
        </span>{{selected | json}}
      </div>

App.js

$scope.periods = [1,2,3,4,5,6,7,8,9,0]; /*broj sati*/
      $scope.selected = [2];
      $scope.toggle = function (period, list) {
        var idx = list.indexOf(period);
        if (idx > -1) {
          list.splice(idx, 1);
        }
        else {
          list.push(period);
        }
      };
      $scope.exists = function (period, list) {
        return list.indexOf(period) > -1;
      };

请帮忙。

开发者033

实际上,您ngModel是一个对象,因此,要使选定的值在加载时呈现,您应该执行以下操作:

$scope.model = {};
$scope.model.periods = {"2": true};

为了获得所有选中的复选框,您应该遍历键,如下所示:

$scope.save = function() {
  // Get all checked boxes
  var checked = Object.keys($scope.model.periods).filter(function(key) {
    return $scope.model.periods[key];
  });
  console.log(checked);
}

看到它的工作

(function() {
  angular
    .module('app', ['ngMaterial'])
    .controller('MainCtrl', MainCtrl);

  MainCtrl.$inject = ['$scope'];

  function MainCtrl($scope) {
    $scope.model = {};
    $scope.model.periods = {"2": true};
    $scope.periods = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]; /*broj sati*/

    $scope.save = function() {
      // Get all checked boxes
      var checked = Object.keys($scope.model.periods).filter(function(key) {
        return $scope.model.periods[key];
      });
      console.log(checked);
    }
  }
})();
<!DOCTYPE html>
<html ng-app="app">

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-aria.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-animate.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.0.9/angular-material.min.css">
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.0.9/angular-material.min.js"></script>
</head>

<body ng-controller="MainCtrl">
  <form name="form">
    <div class="col-md-12">
      <label for="inputPassword3" class="col-sm-2 control-label">Školski sat *</label>
      <div class="col-sm-10">
        <span class="col-sm-2" ng-repeat="period in periods">
          <md-checkbox ng-model="model.periods[period]">
            {{ period }}. sat
          </md-checkbox>
        </span>
      </div>
      <span ng-bind="model.periods | json"></span>
      <hr>
      <button type="button" class="btn btn-success" ng-click="save()">Save data</button>
    </div>
  </form>
</body>

</html>

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS多个复选框有疑问(Angular Material)

来自分类Dev

Angular Material如何获取复选框文本溢出省略号

来自分类Dev

如何返回在 ANGULAR Material 6 中选中和取消选中的复选框的布尔值

来自分类Dev

CheckboxSelectMultiple不显示带有Django-Material的复选框

来自分类Dev

CheckboxSelectMultiple不显示带有Django-Material的复选框

来自分类Dev

Material-UI 包括带有单选按钮、复选框等标签的内联链接

来自分类Dev

无法在Material UI中选中循环中的复选框

来自分类Dev

根据DataTrigger更改Material WPF复选框的边框颜色

来自分类Dev

如何手动检查 Material UI 复选框?

来自分类Dev

Angular2 - 带有多个复选框的 NgFor

来自分类Dev

android中的Material Design复选框的名称是什么(android.R.drawable。{checkbox})?

来自分类Dev

Material-ui-封装在组件中的TableRow不会显示复选框

来自分类Dev

更改未选中的Material-UI复选框的背景颜色

来自分类Dev

React Material-UI复选框的onChange事件不会触发

来自分类Dev

如何防止更改Material-UI复选框组件的大小

来自分类Dev

React Material-UI如何添加与表格行单击分开的复选框

来自分类Dev

如何在酶/笑话测试中切换和选中Material UI复选框

来自分类Dev

Material Ui复选框控制的状态更改不起作用

来自分类Dev

复选框不使用Material-UI在React中切换

来自分类Dev

在React Material-UI DataGrid中的复选框选择上获取行项目

来自分类Dev

如何在Material Design Lite中将事件附加到表格复选框

来自分类Dev

Material Design Lite-复选框和列表在哪里?

来自分类Dev

使用Material Design Lite复选框突出显示整个表格行

来自分类Dev

Material-ui-封装在组件中的TableRow不会显示复选框

来自分类Dev

如何设置在 Material-UI React 中选中的复选框组件?

来自分类Dev

Material-UI 复选框在网格中“跳跃”

来自分类Dev

Angular中的多个复选框

来自分类Dev

多个复选框

来自分类Dev

AngularJS 复选框

Related 相关文章

  1. 1

    AngularJS多个复选框有疑问(Angular Material)

  2. 2

    Angular Material如何获取复选框文本溢出省略号

  3. 3

    如何返回在 ANGULAR Material 6 中选中和取消选中的复选框的布尔值

  4. 4

    CheckboxSelectMultiple不显示带有Django-Material的复选框

  5. 5

    CheckboxSelectMultiple不显示带有Django-Material的复选框

  6. 6

    Material-UI 包括带有单选按钮、复选框等标签的内联链接

  7. 7

    无法在Material UI中选中循环中的复选框

  8. 8

    根据DataTrigger更改Material WPF复选框的边框颜色

  9. 9

    如何手动检查 Material UI 复选框?

  10. 10

    Angular2 - 带有多个复选框的 NgFor

  11. 11

    android中的Material Design复选框的名称是什么(android.R.drawable。{checkbox})?

  12. 12

    Material-ui-封装在组件中的TableRow不会显示复选框

  13. 13

    更改未选中的Material-UI复选框的背景颜色

  14. 14

    React Material-UI复选框的onChange事件不会触发

  15. 15

    如何防止更改Material-UI复选框组件的大小

  16. 16

    React Material-UI如何添加与表格行单击分开的复选框

  17. 17

    如何在酶/笑话测试中切换和选中Material UI复选框

  18. 18

    Material Ui复选框控制的状态更改不起作用

  19. 19

    复选框不使用Material-UI在React中切换

  20. 20

    在React Material-UI DataGrid中的复选框选择上获取行项目

  21. 21

    如何在Material Design Lite中将事件附加到表格复选框

  22. 22

    Material Design Lite-复选框和列表在哪里?

  23. 23

    使用Material Design Lite复选框突出显示整个表格行

  24. 24

    Material-ui-封装在组件中的TableRow不会显示复选框

  25. 25

    如何设置在 Material-UI React 中选中的复选框组件?

  26. 26

    Material-UI 复选框在网格中“跳跃”

  27. 27

    Angular中的多个复选框

  28. 28

    多个复选框

  29. 29

    AngularJS 复选框

热门标签

归档