var app = angular.module('app', []);
app.directive("eventsEvaluation", function() {
return {
restrict: "E",
template: "<div>" +
"<span class='span' type='number' data-ng-bind='number'></span>" +
" <a class='btn btn-default' href='#' data-ng-click='reduce()'><span class='glyphicon glyphicon-minus'></span></a> " +
" <a class='btn btn-default' href='#' data-ng-click='increase()'><span class='glyphicon glyphicon-plus'></span></a> " +
"</div>",
replace: true,
transclude: false,
controller: function($scope) {
$scope.number = 0;
$scope.increase = function() {
$scope.number++;
};
$scope.reduce = function() {
$scope.number--;
};
},
}
});
span.span {
width: 40px;
height: 40px;
display: block;
font-size: 20px;
font-weight: bold;
text-align: center;
margin-left: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div class="container" data-ng-app="app">
<form>
<h3>Like or dislike</h3>
<div class="row">
<div class="col-md-4">
<events-evaluation data-ng-model="number">
</events-evaluation>
</div>
</div>
<h3>Like or dislike</h3>
<div class="row">
<div class="col-md-4">
<events-evaluation data-ng-model="number">
</events-evaluation>
</div>
</div>
</form>
</div>
I would like code like/dislike system, but I ca't handle with all problems.
First: How make $this in Angular something like in jQuery, because look, if I click plus in first in second plus will be clicked too. I would like separate clicks two divs.
Second: How make that will possible only one click plus or minus (range click will be 1)
ng-repeat, you can do something like<div ng-repeat="item in items"><events-evaluation ng-model="item.number">ng-repeat. I assumed that you don't create 100 same divs by hand, but use ang-repeatfor that