阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Ionic 浮动框

      $ionicPopover

      $ionicPopover 是一个可以浮在 app 内容上的一个视图框。

      可以实现以下功能点:

      • 在当前页面显示更多信息。
      • 选择一些工具或配置。
      • 在页面提供一个操作列表。

      方法

      fromTemplate(templateString, options)
      或
      fromTemplateUrl(templateUrl, options)
      
      

      参数说明:

      templateString: 模板字符串。

      templateUrl: 载入的模板 URL。

      options: 初始化选项。

      实例

      HTML 代码部分

      <p>
      <button ng-click="openPopover($event)">打开浮动框</button>
      </p>
      <script id="my-popover.html" type="text/ng-template">
      <ion-popover-view>
        <ion-header-bar>
          <h1 class="title">我的浮动框标题</h1>
        </ion-header-bar>
        <ion-content>
          Hello!
        </ion-content>
      </ion-popover-view>
      </script>
      

      fromTemplateUrl 方法

      angular.module('ionicApp', ['ionic'])
      .controller( 'AppCtrl',['$scope','$ionicPopover','$timeout',function($scope,$ionicPopover,$timeout){
      
        $scope.popover = $ionicPopover.fromTemplateUrl('my-popover.html', {
          scope: $scope
        });
      
        // .fromTemplateUrl() 方法
        $ionicPopover.fromTemplateUrl('my-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();
        });
        // 在隐藏浮动框后执行
        $scope.$on('popover.hidden', function() {
          // 执行代码
        });
        // 移除浮动框后执行
        $scope.$on('popover.removed', function() {
          // 执行代码
        });
      
      }])
      

      我们也可以把模板当作一个字符串,使用 .fromTemplate() 方法来实现弹框:

      fromTemplate 方法

      angular.module('ionicApp', ['ionic'])
      .controller( 'AppCtrl',['$scope','$ionicPopover','$timeout',function($scope,$ionicPopover,$timeout){
      
        $scope.popover = $ionicPopover.fromTemplateUrl('my-popover.html', {
          scope: $scope
        });
        // .fromTemplate() 方法
        var template = '<ion-popover-view><ion-header-bar> <h1 class="title">我的浮动框标题</h1> </ion-header-bar> <ion-content> Hello! </ion-content></ion-popover-view>';
            $scope.popover = $ionicPopover.fromTemplate(template, {
          scope: $scope
        });
      
      
      
        $scope.openPopover = function($event) {
          $scope.popover.show($event);
        };
        $scope.closePopover = function() {
          $scope.popover.hide();
        };
        // 清除浮动框
        $scope.$on('$destroy', function() {
          $scope.popover.remove();
        });
        // 在隐藏浮动框后执行
        $scope.$on('popover.hidden', function() {
          // 执行代码
        });
        // 移除浮动框后执行
        $scope.$on('popover.removed', function() {
          // 执行代码
        });
      
      }])
      
      目录
      目录