ionic js 模型 $ionicModal 可以遮住用户主界面的内容框


Posted in Javascript onJune 06, 2016

 ionic 模型

$ionicModal

$ionicModal 可以遮住用户主界面的内容框。

你可以在你的 index 文件或者是其他文件内嵌入以下代码(里面的代码可以根据你自己的业务场景相应的改变)。

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

然后你就可以在你的 Controller 里面的注入 $ionicModal 。然后调用你刚刚写入的模板,进行初始化操作。就像下面的代码:

angular.module('testApp', ['ionic'])
.controller('MyController', function($scope, $ionicModal) {
$ionicModal.fromTemplateUrl('my-modal.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function(modal) {
$scope.modal = modal;
});
$scope.openModal = function() {
$scope.modal.show();
};
$scope.closeModal = function() {
$scope.modal.hide();
};
//Cleanup the modal when we're done with it!
$scope.$on('$destroy', function() {
$scope.modal.remove();
});
// Execute action on hide modal
$scope.$on('modal.hidden', function() {
// Execute action
});
// Execute action on remove modal
$scope.$on('modal.removed', function() {
// Execute action
});
});

方法

fromTemplate(templateString, options)

参数 类型 详情
templateString 字符串 模板的字符串作为模型的内容。
options 对象 options 会传递到 ionicModal#initialize方法中。
返回: 对象, 一个ionicModal控制器的实例。

fromTemplateUrl(templateUrl, options)

参数 类型 详情
templateUrl 字符串 载入模板的url。
options 对象 通过ionicModal#initialize方法传递对象。

返回: promise对象。Promises对象是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。

ionicModal

由$ionicModal服务实例化。

提示:当你完成每个模块清除时,确保调用remove()方法,以避免内存泄漏。

注意:一个模块从它的初始范围广播出 'modal.shown' 和 'modal.hidden' ,把自身作为一个参数来传递。

方法

initialize(可选)

创建一个新的模型控制器示例。

参数 类型 详情
options 对象 一个选项对象具有一下属性: {object=} 范围 子类的范围。默认:创建一个$rootScope子类。 {string=} 动画 带有显示或隐藏的动画。默认:'slide-in-up' {boolean=} 第一个输入框获取焦点 当显示时,模型的第一个输入元素是否自动获取焦点。默认:false。 {boolean=}backdropClickToClose` 点击背景时是否关闭模型。默认:true。

show()

显示模型实例

返回值: promise promise对象,在模型完成动画后得到解析

hide()

隐藏模型。

返回值: promise promise对象,在模型完成动画后得到解析

remove()

从 DOM 中移除模型实例并清理。

返回值: promise promise对象,在模型完成动画后得到解析

isShown()

返回:布尔值,用于判断模型是否显示。

实例

HTML 代码

<html ng-app="ionicApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
<title>菜鸟教程(runoob.com)</title>
<link href="http://www.runoob.com/static/ionic/css/ionic.min.css" rel="stylesheet">
<script src="http://www.runoob.com/static/ionic/js/ionic.bundle.min.js"></script>
</head>
<body ng-controller="AppCtrl">
<ion-header-bar class="bar-positive">
<h1 class="title">Contacts</h1>
<div class="buttons">
<button class="button button-icon ion-compose" ng-click="modal.show()">
</button>
</div>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item ng-repeat="contact in contacts">
{{contact.name}}
</ion-item>
</ion-list>
</ion-content>
<script id="templates/modal.html" type="text/ng-template">
<ion-modal-view>
<ion-header-bar class="bar bar-header bar-positive">
<h1 class="title">New Contact</h1>
<button class="button button-clear button-primary" ng-click="modal.hide()">Cancel</button>
</ion-header-bar>
<ion-content class="padding">
<div class="list">
<label class="item item-input">
<span class="input-label">First Name</span>
<input ng-model="newUser.firstName" type="text">
</label>
<label class="item item-input">
<span class="input-label">Last Name</span>
<input ng-model="newUser.lastName" type="text">
</label>
<label class="item item-input">
<span class="input-label">Email</span>
<input ng-model="newUser.email" type="text">
</label>
<button class="button button-full button-positive" ng-click="createContact(newUser)">Create</button>
</div>
</ion-content>
</ion-modal-view>
</script>
</body>
</html>

CSS 代码

body {
cursor: url('http://www.runoob.com/try/demo_source/finger.png'), auto;
}

JavaScript 代码

angular.module('ionicApp', ['ionic'])
.controller('AppCtrl', function($scope, $ionicModal) {
$scope.contacts = [
{ name: 'Gordon Freeman' },
{ name: 'Barney Calhoun' },
{ name: 'Lamarr the Headcrab' },
];
$ionicModal.fromTemplateUrl('templates/modal.html', {
scope: $scope
}).then(function(modal) {
$scope.modal = modal;
});
$scope.createContact = function(u) { 
$scope.contacts.push({ name: u.firstName + ' ' + u.lastName });
$scope.modal.hide();
};
});

完整源码:

<html ng-app="ionicApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="http://cdn.bootcss.com/ionic/1.0.1/css/ionic.min.css" rel="stylesheet">
<script src="http://cdn.bootcss.com/ionic/1.0.1/js/ionic.bundle.min.js"></script>
<style>
body {
cursor: url('http://ionicframework.com/img/finger.png'), auto;
}
</style>
<script>
angular.module('ionicApp', ['ionic']
.controller('AppCtrl', function($scope, $ionicModal) {
$scope.contacts = [
{ name: 'Gordon Freeman' },
{ name: 'Barney Calhoun' },
{ name: 'Lamarr the Headcrab' },
];
$ionicModal.fromTemplateUrl('templates/modal.html', {
scope: $scope
}).then(function(modal) {
$scope.modal = modal;
});
$scope.createContact = function(u) { 
$scope.contacts.push({ name: u.firstName + ' ' + u.lastName });
$scope.modal.hide();
};
});
</script>
</head>
<body ng-controller="AppCtrl">
<ion-header-bar class="bar-positive">
<h1 class="title">Contacts</h1>
<div class="buttons">
<button class="button button-icon ion-compose" ng-click="modal.show()">
</button>
</div>
</ion-header-bar>
<ion-content>
<ion-list>
<ion-item ng-repeat="contact in contacts">
{{contact.name}}
</ion-item>
</ion-list>
</ion-content>
<script id="templates/modal.html" type="text/ng-template">
<ion-modal-view>
<ion-header-bar class="bar bar-header bar-positive">
<h1 class="title">New Contact</h1>
<button class="button button-clear button-primary" ng-click="modal.hide()">Cancel</button>
</ion-header-bar>
<ion-content class="padding">
<div class="list">
<label class="item item-input">
<span class="input-label">First Name</span>
<input ng-model="newUser.firstName" type="text">
</label>
<label class="item item-input">
<span class="input-label">Last Name</span>
<input ng-model="newUser.lastName" type="text">
</label>
<label class="item item-input">
<span class="input-label">Email</span>
<input ng-model="newUser.email" type="text">
</label>
<button class="button button-full button-positive" ng-click="createContact(newUser)">Create</button>
</div>
</ion-content>
</ion-modal-view>
</script>
</body>
</html>

ionic js 模型 $ionicModal 可以遮住用户主界面的内容框ionic js 模型 $ionicModal 可以遮住用户主界面的内容框

Javascript 相关文章推荐
看了就知道什么是JSON
Dec 09 Javascript
JS维吉尼亚密码算法实现代码
Nov 09 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
Mar 06 Javascript
iframe实用操作锦集
Apr 22 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
Sep 20 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
Vue.js实现文章评论和回复评论功能
May 30 Javascript
基于vue实现swipe分页组件实例
May 25 Javascript
小程序实现带年月选取效果的日历
Jun 27 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
JavaScript sort数组排序方法和自我实现排序方法小结
Jun 06 #Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 #Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 #Javascript
jquery树形菜单效果的简单实例
Jun 06 #Javascript
逻辑表达式中与或非的用法详解
Jun 06 #Javascript
node.js 中国天气预报 简单实现
Jun 06 #Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 #Javascript
You might like
php4的session功能评述(二)
2006/10/09 PHP
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
从零学Python之入门(三)序列
2014/05/25 Python
python任务调度实例分析
2015/05/19 Python
python爬虫使用cookie登录详解
2017/12/27 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
python实现数据分析与建模
2019/07/11 Python
python join方法使用详解
2019/07/30 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
Java面试笔试题大全
2016/11/23 面试题
经贸日语专业个人求职信
2013/12/13 职场文书
银行员工辞职信范文
2014/01/20 职场文书
慈善晚会策划方案
2014/05/14 职场文书
演讲稿的写法
2014/05/19 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书