angular checkbox $ watch not working

时间:2014-08-19 07:54:16

标签: angularjs

当我选中复选框时,我需要实时更新我的​​模型。但是当我运行这段代码时:TypeError:无法读取属性' map'未定义的。

删除地图功能&添加了console.log(nv)。

然后最初打印一个空数组。然后,当我选中一个复选框时,它会正确返回对象。这是我的代码。寻求你的帮助..

//我的控制器

$scope.selection = [];    

$scope.$watch('items|filter:{selected:true}', function (nv) {

     $scope.selection = nv.map(function (item) {
      return item.id;
 });

},true);

//视图

<div ng-repeat="item in items | filter:global.query | orderBy: name">

    <input class="tile-check" id="check-0" type="checkbox" name="delete"
                      ng-model="item.selected">

</div>

来源:http://jsbin.com/ImAqUC/1

1 个答案:

答案 0 :(得分:0)

解决。问题是在设置项变量之前调用了$ watch。所以我把它放在一边。

if(nv){

     $scope.selection = nv.map(function (item) {
        return item.id;
     });
}