<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example - example-checkbox-input-directive-production</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.1/angular.min.js"></script>
</head>
<body ng-app="checkboxExample">
<script>
angular.module('checkboxExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.genders=['male','female','other'];
$scope.selection=[];
$scope.toggleSelection = function toggleSelection(gender) {
var idx = $scope.selection.indexOf(gender);
if (idx > -1) {
// is currently selected
$scope.selection.splice(idx, 1);
}
else {
// is newly selected
$scope.selection.push(gender);
}
};
}]);
</script>
<form name="myForm" ng-controller="ExampleController">
<div ng-repeat="gender in genders">
<div class="action-checkbox">
<input id="{{gender}}" type="checkbox" value="{{gender}}" ng-checked="selection.indexOf(gender) > -1" ng-click="toggleSelection(gender)" />
<label for="{{gender}}"></label>
{{gender}}
</div>
</div>
<span>Selected Items:<span>
<div ng-repeat="gender in selection" class="selected-item">
{{gender}}
</div>
</form>
</body>
</html>
it('should change state', function() {
var value1 = element(by.binding('value1'));
var value2 = element(by.binding('value2'));
expect(value1.getText()).toContain('true');
expect(value2.getText()).toContain('YES');
element(by.model('value1')).click();
element(by.model('value2')).click();
expect(value1.getText()).toContain('false');
expect(value2.getText()).toContain('NO');
});
a little plunk for James