2017-02-25 113 views
0

我想在加载时选择其中的一些复选框。我需要能够选择并取消选中页面加载后的所有复选框。到目前为止,我尝试过:$ scope.itemSelected = [{“ItemID”:1,“ItemName”:“Item 1”}];如何选择加载页面上的复选框

 div ng-repeat="item in itemItems"> 
      <md-checkbox ng-checked="existsItem(item, itemSelected);" ng-click="toggleItem(item, itemSelected);" value="{{item.ItemID}}"> 
       {{item.ItemName}} 
      </md-checkbox> 
     </div> 

angular.module('MyApp', ['ngMaterial']) 
.controller('AdminController', function ($scope) { 

$scope.itemItems = [{ "ItemID": 1, "ItemName": "Item 1" }, { "ItemID": 2, "ItemName": "Item 2" }, 
    { "ItemID": 3, "ItemName": "Item 3" }, { "ItemID": 4, "ItemName": "Item 4" }, 
    { "ItemID": 5, "ItemName": "Item 5" }]; 
$scope.itemSelected = []; 

$scope.toggleItem = function (item, list) { 
    var idx = list.indexOf(item); 
    if (idx > -1) { 
     list.splice(idx, 1); 
    } 
    else { 
     list.push(item); 
    } 
}; 

$scope.existsItem = function (item, list) { 
    return list.indexOf(item) > -1; 
}; 
}) 
+0

您已经定义了一个目标,但不是一个具体的问题或问题涉及到你的代码。请通读[问]。您通常使用'ng-model'作为复选框状态。我们也不知道'itemSelected'是什么,它没有被定义在任何地方 – charlietfl

+0

谢谢。我将itemSelected作为参数传递给toggleItem – user6440175

+0

最好不要使用带有角度的javascript .... – MukulSharma

回答

0

这个错误在ng 1.1.2以下的角度材料版本中检查过,但它已经在版本1.1.1中修复了。请参阅更改日志链接https://github.com/angular/material/blob/master/CHANGELOG.md。如果您想使用ng-check,请抓取最新版本。

或者,您可以使用ng-model来检查和取消选中复选框。通过操作数组来添加checked属性,可以将其操作为false或true,并在复选框中将此属性用作ng-model。谢谢。

查看

<div ng-repeat="item in itemItems"> 
     <md-checkbox ng-checked="existsItem(item, itemSelected);" ng-click="toggleItem(item, itemSelected);" 
       ng-model="item.checked" value="{{item.ItemID}}"> 
       {{item.ItemName}} 
     </md-checkbox> 
    </div> 

控制器

$scope.itemItems = [{ "ItemID": 1, "ItemName": "Item 1", "checked":true}, { "ItemID": 2, "ItemName": "Item 2" , "checked":false}, 
    { "ItemID": 3, "ItemName": "Item 3", "checked":false }, { "ItemID": 4, "ItemName": "Item 4" , "checked":false}, 
    { "ItemID": 5, "ItemName": "Item 5", "checked":false }]; 
+0

谢谢。您的建议可行,但取消选中复选框我必须点击两次。我该如何解决这个问题? – user6440175

+0

我以前也经历过这个。我认为它已被固定在角材料版本2,请看到这个问题,https://github.com/angular/material2/pull/672 – digit

+0

尝试使用NG-的变化,而不是NG单击 – digit