I'm facing this issue in the AngularJS the error is:

angular.min.js:13708 Error: [$compile:multidir] Multiple directives 
[foundItems (module: NarrowItDownApp), foundItems (module: 
NarrowItDownApp)] asking for template on: <found-items 
found-items="narrowCtrl.foundItems" 
on-remove="narrowCtrl.removeItem(index)">
http://errors.angularjs.org/1.5.7/$compile/multidir?p0=foundItems&p1=%20(module%3A%20NarrowItDownApp)&p2=foundItems&p3=%20(module%3A%20NarrowItDownApp)&p4=template&p5=%3Cfound-items%20found-items%3D%22narrowCtrl.foundItems%22%20on-remove%3D%22narrowCtrl.removeItem(index)%22%3E
    at angular.min.js:68:12
    at assertNoDuplicate (angular.min.js:9596:15)
    at applyDirectivesToNode (angular.min.js:9013:11)
    at angular.min.js:9516:37
    at processQueue (angular.min.js:16170:28)
    at angular.min.js:16186:27
    at Scope.$eval (angular.min.js:17444:28)
    at Scope.$digest (angular.min.js:17257:31)
    at Scope.$apply (angular.min.js:17552:24)
    at done (angular.min.js:11697:47)
(anonymous) @ angular.min.js:13708
(anonymous) @ angular.min.js:10347
processQueue @ angular.min.js:16178
(anonymous) @ angular.min.js:16186
$eval @ angular.min.js:17444
$digest @ angular.min.js:17257
$apply @ angular.min.js:17552
done @ angular.min.js:11697
completeRequest @ angular.min.js:11903
requestLoaded @ angular.min.js:11836
load (async)
(anonymous) @ angular.min.js:11819
sendReq @ angular.min.js:11642
serverRequest @ angular.min.js:11352
processQueue @ angular.min.js:16170
(anonymous) @ angular.min.js:16186
$eval @ angular.min.js:17444
$digest @ angular.min.js:17257
$apply @ angular.min.js:17552
bootstrapApply @ angular.min.js:1754
invoke @ angular.min.js:4709
doBootstrap @ angular.min.js:1752
bootstrap @ angular.min.js:1772
angularInit @ angular.min.js:1657
(anonymous) @ angular.min.js:31468
trigger @ angular.min.js:3198
defaultHandlerWrapper @ angular.min.js:3488
eventHandler @ angular.min.js:3476
Here is my Index.html file code:

 <!doctype html>
<html lang="en" ng-app="NarrowItDownApp">

<head>
    <title>Narrow Down Your Menu Choice</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="styles/bootstrap.min.css">
    <link rel="stylesheet" href="styles/styles.css">
    <script src="js/angular.min.js"></script>
    <script src="js/app.js"></script>
</head>

<body>
  <div class="container" ng-controller="NarrowItDownController as 
narrowCtrl">
        <h1>Narrow Down Your Chinese Menu Choice</h1>

        <div class="form-group">
            <input type="text" placeholder="search term" 
class="form-control" ng-model="searchTerm">
        </div>
        <div class="form-group narrow-button">
            <button class="btn btn-primary" ng-click="narrowDown()">Narrow 
It Down For Me!</button>
        </div>

        <found-items found-items="narrowCtrl.foundItems" 
on-remove="narrowCtrl.removeItem(index)"></found-items>
    </div>
</body>

</html>
Here is my itemsloaderindicator.template.html file code:

<div class="loader">Loading...</div>
Here is my app.js file code:

    (function () {
  'use strict';

  angular.module('NarrowItDownApp', [])
  .controller('NarrowItDownController', NarrowItDownController)
  .service('MenuSearchService', MenuSearchService)
  .directive('foundItems', FoundItemsDirective);

  NarrowItDownController.$inject = ['MenuSearchService'];
  function NarrowItDownController(MenuSearchService) {
      var narrowCtrl = this;
      narrowCtrl.foundItems = [];

      narrowCtrl.narrowDown = function () {
          if (narrowCtrl.searchTerm) {
              MenuSearchService.getMatchedMenuItems(narrowCtrl.searchTerm)
              .then(function (foundItems) {
                  narrowCtrl.foundItems = foundItems;
              });
          } else {
              narrowCtrl.foundItems = [];
          }
      };

      narrowCtrl.removeItem = function (index) {
          narrowCtrl.foundItems.splice(index, 1);
      };
  }

  MenuSearchService.$inject = ['$http'];
  function MenuSearchService($http) {
      var service = this;

      service.getMatchedMenuItems = function (searchTerm) {
          return $http({
              method: 'GET',
              url: '
https://coursera-jhu-default-rtdb.firebaseio.com/menu_items.json'
          }).then(function (response) {
              var foundItems = response.data.menu_items.filter(function 
(item) {
                  return 
item.description.toLowerCase().includes(searchTerm.toLowerCase());
              });
              return foundItems;
          });
      };
  }

  function FoundItemsDirective() {
      var ddo = {
          templateUrl: 'loader/itemsloaderindicator.template.html',
          scope: {
              foundItems: '<',
              onRemove: '&'
          }
      };

      return ddo;
  }
})();
Using the code above the error of Multidirective error shows I'm using the 
AngularJS v1.5.7.

-- 
You received this message because you are subscribed to the Google Groups 
"Angular and AngularJS discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to angular+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/angular/6e64c3c6-f542-44b2-b95a-404e5f88df4cn%40googlegroups.com.

Reply via email to