Introduction

In this blog, we will discuss how to create a like/dislike button in Angular js.

Step 1

Create an empty project with a meaningful name.

Step 2

Add web form, right click, add item, choose web form, and give it a name.

Step 3

Add script and style cdn link given below:

  1. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  2. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
  3. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
  4. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>

Step 4

Write script for handling like/dislike events.

  1. <script type="text/javascript">
  2. var app = angular
  3. .module("myModule", [])
  4. .controller("myController", function ($scope) {
  5. var technologies = [
  6. { name: "C#", likes: 0, dislikes: 0 },
  7. { name: "ASP.NET", likes: 0, dislikes: 0 },
  8. { name: "ASP.NET MVC", likes: 0, dislikes: 0 },
  9. { name: "SQL", likes: 0, dislikes: 0 },
  10. { name: "AngularJS", likes: 0, dislikes: 0 },
  11. { name: "Angular 5", likes: 0, dislikes: 0 },
  12. { name: "JQuery", likes: 0, dislikes: 0 },
  13. { name: "JavaScript", likes: 0, dislikes: 0 }
  14. ];
  15. $scope.technologies = technologies;
  16. $scope.incrementLikes = function (technology) {
  17. technology.likes++;
  18. };
  19. $scope.incrementDislikes = function (technology) {
  20. technology.dislikes++;
  21. };
  22. });
  23. </script>

Step 5

Design HTML

  1. <body ng-controller="myController">
  2. <form id="form1" runat="server">
  3. <div class="container">
  4. <table class="table table-bordered">
  5. <thead class="bg-danger text-uppercase text-white">
  6. <tr>
  7. <th>Technology</th>
  8. <th>Likes</th>
  9. <th>Dislikes</th>
  10. <th>Action(s)</th>
  11. </tr>
  12. </thead>
  13. <tbody>
  14. <tr ng-repeat="technology in technologies">
  15. <td>{{ technology.name }} </td>
  16. <td style="text-align: center">{{ technology.likes }} </td>
  17. <td style="text-align: center">{{ technology.dislikes }} </td>
  18. <td>
  19. <button type="button" class="btn btn-sm btn-success"><i class="fa fa-thumbs-up" ng-click="incrementLikes(technology)"></i></button>
  20. <button type="button" class="btn btn-sm btn-danger"><i class="fa fa-thumbs-down" ng-click="incrementDislikes(technology)"></i></button>
  21. </td>
  22. </tr>
  23. </tbody>
  24. </table>
  25. </div>
  26. </form>
  27. </body>

Complete code for entire page

  1. <!DOCTYPE html>
  2. <html ng-app="myModule">
  3. <head runat="server">
  4. <title></title>
  5. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  6. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
  7. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
  8. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
  9. <script type="text/javascript">
  10. var app = angular
  11. .module("myModule", [])
  12. .controller("myController", function ($scope) {
  13. var technologies = [
  14. { name: "C#", likes: 0, dislikes: 0 },
  15. { name: "ASP.NET", likes: 0, dislikes: 0 },
  16. { name: "ASP.NET MVC", likes: 0, dislikes: 0 },
  17. { name: "SQL", likes: 0, dislikes: 0 },
  18. { name: "AngularJS", likes: 0, dislikes: 0 },
  19. { name: "Angular 5", likes: 0, dislikes: 0 },
  20. { name: "JQuery", likes: 0, dislikes: 0 },
  21. { name: "JavaScript", likes: 0, dislikes: 0 }
  22. ];
  23. $scope.technologies = technologies;
  24. $scope.incrementLikes = function (technology) {
  25. technology.likes++;
  26. };
  27. $scope.incrementDislikes = function (technology) {
  28. technology.dislikes++;
  29. };
  30. });
  31. </script>
  32. </head>
  33. <body ng-controller="myController">
  34. <form id="form1" runat="server">
  35. <div class="container">
  36. <table class="table table-bordered">
  37. <thead class="bg-danger text-uppercase text-white">
  38. <tr>
  39. <th>Technology</th>
  40. <th>Likes</th>
  41. <th>Dislikes</th>
  42. <th>Action(s)</th>
  43. </tr>
  44. </thead>
  45. <tbody>
  46. <tr ng-repeat="technology in technologies">
  47. <td>{{ technology.name }} </td>
  48. <td style="text-align: center">{{ technology.likes }} </td>
  49. <td style="text-align: center">{{ technology.dislikes }} </td>
  50. <td>
  51. <button type="button" class="btn btn-sm btn-success"><i class="fa fa-thumbs-up" ng-click="incrementLikes(technology)"></i></button>
  52. <button type="button" class="btn btn-sm btn-danger"><i class="fa fa-thumbs-down" ng-click="incrementDislikes(technology)"></i></button>
  53. </td>
  54. </tr>
  55. </tbody>
  56. </table>
  57. </div>
  58. </form>
  59. </body>

Step 6

Run project ctrl+F5

Final output

output