Ionic Js十一:模态

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
  });
});

?

?
?

实例

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();
  };

});

?

?

时间: 2024-10-12 00:12:06

Ionic Js十一:模态的相关文章

Ionic Js九:列表操作

列表是一个应用广泛在几乎所有移动app中的界面元素.ionList 和 ionItem 这两个指令还支持多种多样的交互模式,比如移除其中的某一项,拖动重新排序,滑动编辑等等. <ion-list> <ion-item ng-repeat="item in items"> Hello, {{item}}! </ion-item> </ion-list> 高级用法: 缩略图,删除按钮,重新排序,滑动 <ion-list ng-contr

Ionic Js十:加载动作

$ionicLoading 是 ionic 默认的一个加载交互效果.里面的内容也是可以在模板里面修改. 用法 angular.module('LoadingApp', ['ionic']) .controller('LoadingCtrl', function($scope, $ionicLoading) { $scope.show = function() { $ionicLoading.show({ template: 'Loading...' }); }; $scope.hide = fu

JS中模态窗口(showModalDialog)的详细使用

基本介绍: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window.showModalDialog() 方法用来创建一个显示HTML内容的模态对话框. window.showModelessDialog() 方法用来创建一个显示HTML内容的非模态对话框.使用方法:          vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatur

使用异步js解决模态窗口切换的办法

核心代码 js ="setTimeout(function(){document.getElementsByTagName('Button')[3].click()},100);" 下面是我的实验过的示例代码: 实验地址: http://pyselenium-d1826.coding.io/exapage.html 1 #-*- coding: utf-8 -*- 2 __author__ = 'ray' 3 from selenium import webdriver 4 impor

关于Bootstrap之JS插件模态框的重要注意事项

用modal.js插件的模态框时,根据参考文档写下了如下代码: $('#myModal').modal('toggle').on('shown.bs.modal', function (e) { //TODO something }); 运行结果: chrome正常! IE8+(低版本没试)不响应事件,竟然不响应事件! >>排查步骤: 翻看文档,看有没有介绍此处存在兼容问题,结果没有: 既然不存在兼容问题,就是代码的编写问题了,问题变得好办了,顺序翻转: $('#myModal').on('s

js实现模态框的拖曳功能

项目中需要对模态框进行拖曳,以便对比模态框和页面中的元素,现demo如下: 1 <!-- saved from url=(0066)https://guguji5.github.io/bs-modal-dragable/bs-modal-dragable.html --> 2 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8&qu

Js实例——模态框弹出层

1.描述 百度登录就是一个模态框弹出层.思路分析:先将灰色大背景和登陆盒子设为不可见,利用JS将其动态加载可见. 2.代码 <!DOCTYPE html> <html> <head> <title>模态框弹出层.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-

js实现模态弹窗

一.实现弹窗原理: 弹窗的实现: (1)先写出一个div,弹出窗的样式,然后使用display样式进行隐藏: (2)当点击登录时,弹出窗口,这时display样式变为block (3)遮罩层的实现,使用一个div,让它占据整个屏幕,刚开始时隐藏,当点击登录时,遮罩层的display样式变为block,只是设计时,让遮罩层的z-index的值,小于弹窗的Z-index值,确保弹窗在屏幕的最上层. (4)弹窗位置的实现中,还使用了document.documentElement.clientHeig

Ionic Js十八:滑动框

ion-slide-box 滑动框是一个包含多页容器的组件,每页滑动或拖动切换: 效果图如下: ? ? 用法 <ion-slide-box on-slide-changed="slideHasChanged($index)"> <ion-slide> <div class="box blue"><h1>BLUE</h1></div> </ion-slide> <ion-slid