Angularjs 循环通过剑道网格工具栏上剑道ui菜单中的复选框

Angularjs 循环通过剑道网格工具栏上剑道ui菜单中的复选框,angularjs,kendo-ui,kendo-grid,Angularjs,Kendo Ui,Kendo Grid,我试图在Angular中的剑道网格工具栏中实现剑道ui菜单。我正在菜单上手动创建列列表。我可以在单击复选框时显示/隐藏列。当菜单打开时,我需要遍历复选框,以便根据网格中每列上设置的选项设置选中/未选中。问题是我不知道如何访问子节点的检查/取消检查 下面的代码获取所有子节点,但我不知道如何访问它们的选中/未选中值: var columns = $(e.item).find(".k-item:not(:has(.k-group))"); 我有一个勾选/取消勾选的设置,但我不知道如何从“onOpen

我试图在Angular中的剑道网格工具栏中实现剑道ui菜单。我正在菜单上手动创建列列表。我可以在单击复选框时显示/隐藏列。当菜单打开时,我需要遍历复选框,以便根据网格中每列上设置的选项设置选中/未选中。问题是我不知道如何访问子节点的检查/取消检查

下面的代码获取所有子节点,但我不知道如何访问它们的选中/未选中值:

var columns = $(e.item).find(".k-item:not(:has(.k-group))");

我有一个勾选/取消勾选的设置,但我不知道如何从“onOpen”访问它们。非常感谢您的帮助。

首先您必须找到checkbox元素,然后您可以使用
.prop(“checked”)
方法获取checkbox checked值

因此,如果您想切换“菜单打开”上的复选框值,您可以使用:

$scope.onOpen = function(e) {
    var checkboxes = $(e.item).find(".k-item:not(:has(.k-group))").find("input[type='checkbox']");
    for(var i = 0; i < checkboxes.length; i++){
        var checkbox = $(checkboxes[i]);
        checkbox.prop("checked", !checkbox.prop("checked"));
    }
} 
$scope.onOpen=函数(e){
var复选框=$(e.item).find(.k-item:not(:has(.k-group))).find(“输入[type='checkbox']”);
对于(变量i=0;i

更新的dojo:

感谢Jarosław Kończak让我走上了正确的道路,下面是我最终如何使用列上的“隐藏属性”将复选框设置为选中或不选中!通过稍微改变一下他的建议来检验:

  $scope.onOpen = function(e) {
  var checkboxes = $(e.item).find(".k-item:not(:has(.k-group))").find("input[type='checkbox']");
  for (var i = 0; i < checkboxes.length; i++) {
      var checkbox = $(checkboxes[i]);
      if (checkbox.prop("checked")) {
          var fieldData = checkbox.data("field");
          var columns = $scope.SearchGrid.columns;
          for (var x = 0; x < columns.length; x++) {
              if (columns[x].field == fieldData) {
                  if (columns[x].hidden == true) {
                      checkbox.prop("checked", false);
                  }
              }
          }
      }
  }
$scope.onOpen=函数(e){
var复选框=$(e.item).find(.k-item:not(:has(.k-group))).find(“输入[type='checkbox']”);
对于(变量i=0;i
}

下面是一个使用动态创建的列而不是“手动”列列表的示例