1

我有一个导航按钮,应该显示一个弹出框

<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>
4

2 回答 2

1

摆弄预期的行为。

<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>

我能想到的唯一情况是您没有定义 ID 为“popover.html”的模板。

于 2016-08-23T14:34:32.263 回答
0

这里最有可能的问题是 popover.html 文件保存在子文件夹中的某个位置,如“模板”或类似文件,并且引用 html 文件的控制器分别没有完整的限定路径,脚本只是找不到文件 popover.html .

于 2017-05-16T14:16:40.507 回答