ionic popover、popu、scroll

Popover

$ionicPopover, 参看接着讲解的 ionicPopover 控制器。这个控件和上篇中讲到的ionicModal 内容基本一致。
popover是浮动在用户app内容之上的view视图,很方便的用来展示或收集用户信息,主要用于:

展示当前view视图的更多信息
选择一个常用的工具或配置
展现一个app视图中的动作列表
把要显示在popover中的内容放在元素中即可。
用法:

12345678910111213141516171819202122232425262728293031323334353637383940
<p>  <button ng-click="openPopover($event)">Open Popover</button></p><script id="my-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>

angular.module(‘testApp‘, [‘ionic‘]).controller(‘MyController‘, function($scope, $ionicPopover) {  $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();  };  //Cleanup the popover when we‘re done with it!  $scope.$on(‘$destroy‘, function() {    $scope.popover.remove();  });  // Execute action on hide popover  $scope.$on(‘popover.hidden‘, function() {    // Execute action  });  // Execute action on remove popover  $scope.$on(‘popover.removed‘, function() {    // Execute action  });});

API 方法:

1234567
fromTemplate(templateString, options), 返回ionicPopover的控制器实例----templateString, 类型string,modal中显示的内容。----options,类型object,传递给 $ionicPopover 初始化方法的参数-------------------------------------------fromTemplateUrl(templateUrl, options),返回 ionicPopover 的控制器实例中用到的promise对象----templateString, 类型string,modal中显示的内容url。----options,类型object,传递给 $ionicPopover 初始化方法的参数

ionicPopover

由$ionicPopover 服务调用,当你不需要popover 的时候,要及时调用remove()方法以避免发生内存泄漏。
注意:popover 会从它自身的scope中广播’popover.shown’, ‘popover.hidden’, 和’popover.removed’事件,把这个作为传递事件参数的一部分。移除popover时会调用popover.removed 和 popover.hidden 这两个事件。

方法:

123456789101112
initialize(options), 创建一个新的modal控制器实例----options,类型object,可选值:-------------{object=} 父scope,默认在$rootScope下创建独立的scope-------------{string=} 显示或隐藏的动画效果. 默认是‘slide-in-up‘-------------{boolean=} 是否让popover的第一个输入获得焦点,默认是false.-------------{boolean=} 点击背景的是否自动关闭popover,默认是 true-------------{boolean=} 是否可以使用手机的硬件返回按钮关闭popover,默认: true.show($event),显示popover,返回popover 显示后的promise对象------$event,这个popover对齐的event或target元素hide(), 隐藏popover,返回popover 隐藏后的promise对象remove(),从dom中移除popover 实例,并clean,返回popover 移除后的promise对象isShown(), 返回boolean,表示当前popover 是否显示

Popup

ionic popup服务允许通过程序创建一个popup弹出的窗口,需要用户交互才可以继续。
popup支持原生的 alert(),prompt(),confirm() 这些弹出窗口,也支持可定制内容和样式的弹出框。
popup中的input可以增加autofocus属性,这样当弹出对话框时,会自动是这个input获得焦点。

用法:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
angular.module(‘mySuperApp‘, [‘ionic‘]).controller(‘PopupCtrl‘,function($scope, $ionicPopup, $timeout) {// Triggered on a button click, or some other target$scope.showPopup = function() {  $scope.data = {}  // An elaborate, custom popup  var myPopup = $ionicPopup.show({    template: ‘<input type="password" ng-model="data.wifi">‘,    title: ‘Enter Wi-Fi Password‘,    subTitle: ‘Please use normal things‘,    scope: $scope,    buttons: [      { text: ‘Cancel‘ },      {        text: ‘<b>Save</b>‘,        type: ‘button-positive‘,        onTap: function(e) {          if (!$scope.data.wifi) {            //don‘t allow the user to close unless he enters wifi password            e.preventDefault();          } else {            return $scope.data.wifi;          }        }      },    ]  });  myPopup.then(function(res) {    console.log(‘Tapped!‘, res);  });  $timeout(function() {     myPopup.close(); //close the popup after 3 seconds for some reason  }, 3000); }; // A confirm dialog $scope.showConfirm = function() {   var confirmPopup = $ionicPopup.confirm({     title: ‘Consume Ice Cream‘,     template: ‘Are you sure you want to eat this ice cream?‘   });   confirmPopup.then(function(res) {     if(res) {       console.log(‘You are sure‘);     } else {       console.log(‘You are not sure‘);     }   }); }; // An alert dialog $scope.showAlert = function() {   var alertPopup = $ionicPopup.alert({     title: ‘Don\‘t eat that!‘,     template: ‘It might taste good‘   });   alertPopup.then(function(res) {     console.log(‘Thank you for not eating my delicious ice cream cone‘);   }); };});

API 方法:

show(options), 显示一个复杂的popup弹出框。
复杂的弹出框,可以设置一个buttons数组,里面每个button可以设置text属性,type属性和onTap事件,而系统默认在点击按钮时,会关闭对话框并返回结果到promise对象中,如果你不想关闭对话框,可以在onTap事件函数中调用event.preventDefault()。返回一个promise对象,该对象有个close方法,可以在程序中调用这个方法来关闭弹出框。
—-options, 类型是object,参考示例如下:

12345678910111213141516171819202122
{  title: ‘‘, // String. The title of the popup.  subTitle: ‘‘, // String (optional). The sub-title of the popup.  template: ‘‘, // String (optional). The html template to place in the popup body.  templateUrl: ‘‘, // String (optional). The URL of an html template to place in the popup   body.  scope: null, // Scope (optional). A scope to link to the popup content.  buttons: [{ //Array[Object] (optional). Buttons to place in the popup footer.    text: ‘Cancel‘,    type: ‘button-default‘,    onTap: function(e) {      // e.preventDefault() will stop the popup from closing when tapped.      e.preventDefault();    }  }, {    text: ‘OK‘,    type: ‘button-positive‘,    onTap: function(e) {      // Returning a value will cause the promise to resolve with the given value.      return scope.data.response;    }  }]}

alert(options),警告弹出框,显示一段信息,和一个按钮,点击按钮可以关闭弹出框。返回一个promise对象,该对象有个close方法,可以在程序中调用这个方法来关闭弹出框。
——options,类型object,配置弹出框的参数。

12345678
{  title: ‘‘, // String. The title of the popup.  subTitle: ‘‘, // String (optional). The sub-title of the popup.  template: ‘‘, // String (optional). The html template to place in the popup body.  templateUrl: ‘‘, // String (optional). The URL of an html template to place in the popup   body.  okText: ‘‘, // String (default: ‘OK‘). The text of the OK button.  okType: ‘‘, // String (default: ‘button-positive‘). The type of the OK button.}

confirm(options),弹出一个comfirm对话框,点击ok按钮返回true,点击cancel返回false的promise对象。返回一个promise对象,该对象有个close方法,可以在程序中调用这个方法来关闭弹出框。
——options,类型object,显示confirm对话框的参数。例子:

12345678910
{  title: ‘‘, // String. The title of the popup.  subTitle: ‘‘, // String (optional). The sub-title of the popup.  template: ‘‘, // String (optional). The html template to place in the popup body.  templateUrl: ‘‘, // String (optional). The URL of an html template to place in the popup   body.  cancelText: ‘‘, // String (default: ‘Cancel‘). The text of the Cancel button.  cancelType: ‘‘, // String (default: ‘button-default‘). The type of the Cancel button.  okText: ‘‘, // String (default: ‘OK‘). The text of the OK button.  okType: ‘‘, // String (default: ‘button-positive‘). The type of the OK button.}

prompt(options),显示一个带有输入框,ok按钮,cancel按钮的对话框。点击ok时,返回的promise对象中包含输入的值,点击cancel时,值为undefined。返回的promise对象有个close方法,可以在程序中调用这个方法来关闭弹出框。使用例子:

12345678
$ionicPopup.prompt({   title: ‘Password Check‘,   template: ‘Enter your secret password‘,   inputType: ‘password‘,   inputPlaceholder: ‘Your password‘ }).then(function(res) {   console.log(‘Your password is‘, res); });

—— options, 类型object,配置对话框参数。示例:

123456789101112
{  title: ‘‘, // String. The title of the popup.  subTitle: ‘‘, // String (optional). The sub-title of the popup.  template: ‘‘, // String (optional). The html template to place in the popup body.  templateUrl: ‘‘, // String (optional). The URL of an html template to place in the popup   body.  inputType: // String (default: ‘text‘). The type of input to use  inputPlaceholder: // String (default: ‘‘). A placeholder to use for the input.  cancelText: // String (default: ‘Cancel‘. The text of the Cancel button.  cancelType: // String (default: ‘button-default‘). The type of the Cancel button.  okText: // String (default: ‘OK‘). The text of the OK button.  okType: // String (default: ‘button-positive‘). The type of the OK button.}

scroll

ion-scroll 创建一个可以容纳所有内容,滚动的容器。

用法:

123
<ion-scroll zooming="true" direction="xy" style="width: 500px; height: 500px">  <div style="width: 5000px; height: 5000px; background: url(‘https://upload.wikimedia.org/wikipedia/commons/a/ad/Europe_geological_map-en.jpg‘) repeat"></div> </ion-scroll>

注意:设置scroll box的高度和内部内容的高度很重要,这样才可以让滚动区域随意滚动显示。
API 参数:

12345678910111213
delegate-handle(optional), string,控制这个scroll view的委托实例$ionicScrollDelegatedirection(optional),string,滚动的方向. ‘x‘ or ‘y‘ or ‘xy‘. 默认是 ‘y‘.属性:locking(可选),类型boolean,是否锁定一次只能滚动一个方向属性:padding(可选),类型boolean,是否给content增加padding,iOS默认为true,android默认为false属性:scroll(可选),类型boolean,是否允许滚动内容,默认是true属性:on-scroll,类型:expression,滚动内容时执行的表达式属性:on-refresh,类型:expression,下拉刷新时调用,由ionRefresher 触发。属性:scrollbar-x,类型boolean,是否显示x轴滚动条属性:scrollbar-y,类型boolean,是否显示y轴滚动条属性:zooming,类型boolean,是否支持手势缩放属性:min-zoom,类型integer,最小缩放比例,默认是0.5属性:max-zoom,类型integer,最大缩放比例,默认是3属性:has-bouncing,类型:boolean,是否允许滚动时弹跳超过内容体的边界,ios默认true,Android默认false

ion-infinite-scroll

ionContent 和 ionScroll 中共有的子元素。
ionInfiniteScroll 允许你在用户滚动到内部内容的边缘时调用一个回调函数。
当用户滚动内容距离底部小于distance定义的距离时,会自动调用on-infinite中定义的回调函数,可以加载更多内容,加载完更多内容后,在控制器中需要广播croll.infiniteScrollComplete 事件。使用实例:

12345678910111213141516171819202122
<ion-content ng-controller="MyController">  <ion-list>  ....  ....  </ion-list>  <ion-infinite-scroll    on-infinite="loadMore()"    distance="1%">  </ion-infinite-scroll></ion-content>function MyController($scope, $http) {  $scope.items = [];  $scope.loadMore = function() {    $http.get(‘/more-items‘).success(function(items) {      useItems(items);      $scope.$broadcast(‘scroll.infiniteScrollComplete‘);    });  };  $scope.$on(‘$stateChangeSuccess‘, function() {    $scope.loadMore();  });}

当没有更多内容加载时,停止infinite scroll的方法是使用ng-if指令

12345
<ion-infinite-scroll  ng-if="moreDataCanBeLoaded()"  icon="ion-loading-c"  on-infinite="loadMoreData()"></ion-infinite-scroll>

API 参数:

12345
on-infinite, 类型expression,当滚动到底部时候的调用函数distance(可选),类型string,定义距离底部多少时调用on-infinite定义的表达式,默认是:1%icon(可选),类型string,定义加载过程中显示的图标,默认是‘ion-loading-d‘

$ionicScrollDelegate
时间: 2024-10-16 03:41:24

ionic popover、popu、scroll的相关文章

ionic入门篇(一)[了解]与[头部、底部、副标题]

一].ionic了解:是什么?1.强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework )2.构建接近原生体验的移动应用程序.3.注重外观.体验.交互4.轻量.速度快5.不支持IOS6和Android4.1以下的版本 特点:1.基于Angular语法2.轻量级.简单3.融合下一代移动框架,支持Angular.js特性,MVC,代码易维护4.漂亮.SASS.UI组件多5.原生性强6.ionic提供了强大的命令行工具7.性能优越,运行速度快 ion

offset、client、scroll开头的属性归纳总结

HTML元素有几个offset.client.scroll开头的属性,总是让人摸不着头脑.在书中看到记下来,分享给需要的小伙伴.主要是以下几个属性: 第一组:offsetWidth,offsetHeight,offsetLeft,offsetTop,offsetParent  第二组:clientWidth,clientHeight,clientLeft,clientTop 第三组:scrollWidth,scrollHeight,scrollLeft,scrollTop 详细定义如下: 1.1

Node.js、Ionic、Cordova、AngualrJS安装

1.安装node.js: 从node.js官网下载node.js安装包,node.js下载地址:https://nodejs.org/en/download/,选择对应系统的安装下载后进行安装.(注:下载下来的安装包一般是已经带有NPM的了,如果没有NPM则还需要安装NPM) 安装完成可以命令窗口中输入如下命令查看nodes.js的版本.npm的版本: npm -v node -v 2.安装express: 在命令提示符中执行下列命令: npm install express -g npm in

Ionic、SASS、MVVM、LESS简介

Ionic_百度百科 ionic[1] 是一个专注于用WEB开发技术,基于HTML5创建类似于手机平台原生应用的一个开发框架.绑定了AngularJS和Sass.这个框架的目的是从web的角度开发手机应用,基于PhoneGap的编译平台,可以实现编译成各个平台的应用程序. ionic的开发添加android和ios环境. ionic提供很多css组件[2] 和javascript UI库. ionic可以支持定制android和ios的插件,也支持服务端REST的敏捷开发. ionic 特点 编

ionic入门之色彩、图标、边距和界面组件:列表

转载声明,本文章来自http://cnodejs.org/topic/551b516c33e515e67640631e 目录: 色彩.图标和边距 色彩 图标 内边距 界面组件:列表 列表:.list 成员容器:.item .item: 嵌入文本 .item : 嵌入图标 .item : 嵌入头像 .item : 嵌入缩略图 .item : 嵌入大图 色彩 ionic定义了九种前景/背景/边框的色彩样式,: 可以在任何元素上使用这些样式设置前景和背景颜色: <any class="posit

使用Bootstrap 3开发响应式网站实践05,使用Tab、Modal、Form展示内容,使用Popover、Tooltip展示提示信息

本篇体验用Tab插件显示内容.Html部分为: <div class="row" id="moreInfo"> <div class="col-sm-6"> <h3>兰帕德宣布退出英格兰队</h3> <div class="tabbable"> <ul class="nav nav-tabs"> <li class="a

4.client、offset、scroll系列

client.offset.scroll系列 他们的作用主要与计算盒模型.盒子的偏移量和滚动有关 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域到边框左部的距离,说白了就是边框的乱度 clientWidth 内容区域+左右padding 可视宽度 clientHeight 内容区域+ 上下padding 可视高度 client演示 <!DOCTYPE html> <html> <head> <meta cha

client 、 offset 、 scroll

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 offsetLeft:

HTML标签的offset、client、 scroll和currentStyle属性

本文来自:http://www.cnblogs.com/quanhai/archive/2010/04/19/1715231.html offsetHeight = borderTopWidth + clientHeight + scrollbarWidth + borderBottomWidth; offsetWidth = borderLeftWidth + clientWidth + scrollbarWidth + borderRightWidth; 元素内部实际可用区域(高) = cl