【发布时间】:2015-10-29 06:03:33
【问题描述】:
这里是jsfiddle。 HTML:
<div ng-app="app">
<div ng-controller="ctrl">
<div ng-repeat="item in list">
<div mycb group="{{item.group}}" title="{{item.title}}" is-checked="item.isChecked" value="{{item.value}}" update="callMe()"></div>
</div>
<p>{{result}}</p>
</div>
</div>
JS:
angular.module("app",[])
.controller("ctrl", ["$scope", function($scope){
$scope.list = [
{ group: "pet", title: "dog", isChecked: true, value: "dog" },
{ group: "pet", title: "cat", isChecked: true, value: "cat" },
{ group: "pet", title: "bird", isChecked: true, value: "bird" },
{ group: "pet", title: "snake", isChecked: true, value: "snake" },
{ group: "pet", title: "boy", isChecked: true, value: "boy" },
{ group: "pet", title: "cup", isChecked: true, value: "cup" }
];
$scope.callMe = function(){
var collection = [];
for(var i=0;i<$scope.list.length;i++){
var isChecked = $scope.list[i].isChecked;
if(isChecked){
collection.push($scope.list[i].value);
}
}
$scope.result = collection.join(" ");
}
}])
.directive("mycb", function(){
return{
restrict: "A",
scope: {
title: "@",
isChecked: "=",
group: "@",
value: "@",
update: "&"
},
template: "<input type='checkbox' ng-model='isChecked' name='{{group}}' value='value' ng-change='update()'>{{title}}"
};
})
我创建了一组复选框,每个复选框被点击时都会更新。
默认情况下,所有复选框都被选中。当我单击第一个时,它将变为未选中状态。其他复选框的值将显示出来。
例如:
狗,猫,鸟,蛇,男孩,杯子
当我点击狗时,狗的复选框将变为未选中,并显示“猫,鸟,蛇,男孩,杯子”。事实上,事情不是这样发生的。它显示“狗、猫、鸟、蛇、男孩、杯子”。
请检查一下并帮我一把。非常感谢!
【问题讨论】:
标签: angularjs angularjs-directive angular-ngmodel