ionic popover, TypeError: Невозможно прочитать свойство 'show'

У меня есть кнопка навигации, которая должна показывать поповер

<ion-nav-buttons side="secondary">
    <button class="button button-icon icon ion-more" ng-click="openPopover($event)"></button>
</ion-nav-buttons>

и это контроллер

.controller('MyController', ['$scope','$ionicPopover', function($scope, $ionicPopover) {

    $ionicPopover.fromTemplateUrl('popover.html', {
      scope: $scope
    }).then(function(popover) {
      $scope.popover = popover;
    });
    $scope.openPopover = function($event) {
      $scope.popover.show($event);
    };
    $scope.closePopover = function() {
      $scope.popover.hide();
    };
    $scope.$on('$destroy', function () {
        $scope.popover.remove();
    });

}])

но когда я нажимаю на кнопку навигации, я сталкиваюсь с TypeError: Cannot read property 'show' of undefined at Scope.$scope.openPopover

вот шаблон, который у меня есть в той же папке проекта

<ion-popover-view>
  <ion-content>
    <div class="list">
      <label class="item item-input" ng-click="addFavorite(dish.id)">
        <div class="input-label">
          Add To Favorites
        </div>
      </label>
      <label class="item item-input" ng-click="openModal()">
        <div class="input-label">
          Add A Comment
        </div>
      </label>
    </div>
  </ion-content>
</ion-popover-view>

2 ответа

Возиться с ожидаемым поведением.

<div ng-click="openPopover($event)">
   Click to open popover
</div>

<script id="popover.html" type="text/ng-template">
   <ion-popover-view>
    <ion-header-bar>
       <h1 class="title">My Popover Title</h1>
    </ion-header-bar>
    <ion-content>
          Hello!
    </ion-content>
   </ion-popover-view>
</script>

Единственная ситуация, о которой я могу подумать, это то, что у вас нет шаблона с идентификатором "popover.html".

Скорее всего, проблема здесь в том, что файл popover.html сохраняется где-то в подпапке, такой как 'templates' или аналогичной, и контроллер, ссылающийся на файл html, не имеет полного пути, соответственно, скрипт просто не находит файл popover.html.,

Другие вопросы по тегам