I have got a table, styled with bootstrap. The content of this table is filled using Angular.js. How do I make a row clickable so it will call a function in the scope?
T
HTML:
<table class="table-hover">
CSS:
.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
And if also whats made the tr selectable:
HTML:
<tr ng-click="doSomething()">
CSS:
tr[ng-click] {
cursor: pointer;
}
View JSFiddle Sample
Angular 6
HTML:
<tr (click)="doSomething()">
CSS:
tr:hover {
cursor: pointer;
}
You could just pass the ingredient in argument
ng-click="setSelected(ingredient)"
and in controller
$scope.setSelected = function(my_ingredient) {
$scope.selected = my_ingredient;
console.log($scope.selected);
};
Suggestion and the fiddle:
<tr ng-repeat="ingredient in ingredients" ng-click="setSelected();">
<td>{{ ingredient.name }}</td>
<td>{{ ingredient.status }}</td>
</tr>
<script>
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.ingredients = [
{'name': 'potato'},
{'name': 'tomato'}
];
$scope.setSelected = function() {
$scope.selected = this.ingredient;
console.log($scope.selected);
};
}
</script>