Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. (function () {
  2. 'use strict';
  3.  
  4. angular.module('narrowDownMenuApp', [])
  5. .controller('narrowItDownController', narrowItDownController)
  6. .service('MenuSearchService', MenuSearchService)
  7. .directive('searchResult', searchResultDirective);
  8.  
  9. function searchResultDirective() {
  10. var ddo = {
  11. templateUrl: 'searchResult.html',
  12. scope: {
  13. items: '<'
  14. },
  15. };
  16.  
  17. return ddo
  18. }
  19.  
  20. narrowItDownController.$inject = ['MenuSearchService'];
  21. function narrowItDownController(MenuSearchService) {
  22. var menu = this;
  23. menu.input = "";
  24. menu.displayResult = [];
  25. menu.searchX = function(name) {
  26. menu.displayResult = MenuSearchService.FoundItems(menu.input, name);
  27. console.log(menu.displayResult);
  28. };
  29. }
  30.  
  31. MenuSearchService.$inject = ['$http', '$q'];
  32. function MenuSearchService($http, $q) {
  33. var service = this;
  34. service.getMatchedMenuItems = function(name, searchTerm) {
  35. var deferred = $q.defer();
  36. var foundItems = [];
  37. var result = $http({
  38. method: "GET",
  39. url: ('https://davids-restaurant.herokuapp.com/menu_items.json'),
  40. params: {
  41. category: name
  42. }
  43. }).then(function (result) {
  44. var items = result.data;
  45. for (var i = 0; i < items.menu_items.length; i++) {
  46. if (searchTerm === ""){
  47. deferred.reject("Please enter search term");
  48. i = items.menu_items.length;
  49. }
  50. else if (items.menu_items[i].name.toLowerCase().indexOf(searchTerm.toLowerCase()) ==! -1){
  51. foundItems.push(items.menu_items[i].name)
  52. deferred.resolve(foundItems);
  53. }else {
  54. console.log("doesn't match search");
  55. }
  56. }
  57. });
  58.  
  59. return deferred.promise;
  60. };
  61. service.FoundItems = function (searchTerm, name) {
  62. var searchResult = service.getMatchedMenuItems(name, searchTerm);
  63. var foundArray = [];
  64. $q.all([searchResult])
  65. .then(function (foundItems) {
  66. foundArray = foundItems[0].slice(0);
  67. foundArray.reverse();
  68. })
  69. .catch(function (errorResponse) {
  70. foundArray.push(errorResponse);
  71. });
  72. console.log(foundArray);
  73. return foundArray;
  74. };
  75. };
  76. })();
  77.  
  78. foundArray = foundItems[0].slice(0);
  79.  
  80. foundArray = foundItems.slice(0);
  81.  
  82. service.FoundItems = function (searchTerm, name) {
  83. var foundArray = [];
  84. var searchPromise = service.getMatchedMenuItems(name, searchTerm);
  85. foundArray.$promise = searchPromise
  86. .then(function (foundItems) {
  87. angular.copy(foundItems, foundArray);
  88. foundArray.reverse();
  89. })
  90. .catch(function (errorResponse) {
  91. foundArray.push(errorResponse);
  92. })
  93. .finally(function() {
  94. console.log(foundArray);
  95. });
  96. return foundArray;
  97. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement