ionic 上拉菜单(ActionSheet)+背景层+下拉刷新

<small>上拉菜单(ActionSheet)通过往上弹出的框,来让用户选择选项。
非常危险的选项会以高亮的红色来让人第一时间识别。你可以通过点击取消按钮或者点击空白的地方来让它消失。</small>


实例

HTML 代码

<body ng-app="starter" ng-controller="actionsheetCtl" > 

    <ion-pane> 
        <ion-content > 
            <h2 ng-click="show()">Action Sheet</h2> 
        </ion-content> 
    </ion-pane>
</body>

JavaScript 代码
<small>在代码中触发上拉菜单,需要在你的 angular 控制器中使用 $ionicActionSheet 服务:</small>

angular.module('starter', ['ionic'])

.run(function($ionicPlatform) { 
  $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    }
    if(window.StatusBar) { 
      StatusBar.styleDefault(); 
    } 
  });
})

.controller( 'actionsheetCtl',['$scope','$ionicActionSheet','$timeout' 
,function($scope,$ionicActionSheet,$timeout){ 
    $scope.show = function() { 

        var hideSheet = $ionicActionSheet.show({ 
            buttons: [ 
              { text: '<b>Share</b> This' }, 
              { text: 'Move' } 
            ], 
            destructiveText: 'Delete', 
            titleText: 'Modify your album', 
            cancelText: 'Cancel', 
            cancel: function() { 
                // add cancel code.. 
            }, 
            buttonClicked: function(index) { 
              return true; 
            } 
        }); 

        $timeout(function() { 
            hideSheet(); 
        }, 2000); 

    }; 
}])

尝试一下 »

<small>运行效果如下图:</small>



ionic 背景层

<small>我们经常需要在 UI 上,例如在弹出框、加载框、其他弹出层中显示或隐藏背景层。
在组件中可以使用$ionicBackdrop.retain()来显示背景层,使用$ionicBackdrop.release()隐藏背景层。
每次调用retain后,背景会一直显示,直到调用release消除背景层。</small>


实例

HTML 代码

<body ng-app="starter" ng-controller="actionsheetCtl" > 
        <ion-pane> 
            <ion-content > 
                <h2 ng-click="action()">$ionicBackdrop</h2> 
            </ion-content> 
        </ion-pane>
</body>

JavaScript 代码

angular.module('starter', ['ionic'])

.run(function($ionicPlatform) { 
  $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    } 
    if(window.StatusBar) { 
      StatusBar.styleDefault(); 
    } 
  });
})

.controller( 'actionsheetCtl',['$scope','$timeout' ,'$ionicBackdrop',function($scope,$timeout,$ionicBackdrop){ 

    $scope.action = function() { 
        $ionicBackdrop.retain(); 
        $timeout(function() { //默认让它1秒后消失 
          $ionicBackdrop.release(); 
        }, 1000); 
    }; 
}])

尝试一下 »

显示效果如下图所示:



ionic 下拉刷新

<small>在加载新数据的时候,我们需要实现下拉刷新效果,代码如下:</small>

实例

HTML 代码

<body ng-app="starter" ng-controller="actionsheetCtl" > 
    <ion-pane> 
        <ion-content > 
            <ion-refresher pulling-text="下拉刷新" on-refresh="doRefresh()">
            </ion-refresher> 
            <ion-list> 
                <ion-item ng-repeat="item in items" ng-bind="item.name"></ion-item> 
            </ion-list> 
        </ion-content> 
    </ion-pane>
</body>

JavaScript 代码

angular.module('starter', ['ionic'])

.run(function($ionicPlatform) { 
  $ionicPlatform.ready(function() { 
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
    // for form inputs) 
    if(window.cordova && window.cordova.plugins.Keyboard) { 
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    } 
    if(window.StatusBar) { 
      StatusBar.styleDefault(); 
    } 
  });
})

.controller( 'actionsheetCtl',['$scope','$timeout' ,'$http',function($scope,$timeout,$http){ 

    $scope.items=[ 
        { 
            "name":"HTML5" 
        }, 
        { 
            "name":"JavaScript" 
        }, 
        { 
            "name":"Css3" 
        } 
    ]; 

    $scope.doRefresh = function() { 
        $http.get('http://www.runoob.com/try/demo_source/item.json') //注意改为自己本站的地址,不然会有跨域问题 

        .success(function(newItems) { 
            $scope.items = newItems; 
        }) 
        .finally(function() { 
            $scope.$broadcast('scroll.refreshComplete'); 
        }); 
    };
}])

item.json 文件数据:

[ 
  { 
    "name":"菜鸟教程" 
  }, 
  { 
    "name":"www.runoob.com" 
  }
]

尝试一下 »

效果如下所示:

![Uploading Paste_Image_396445.png . . .]

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容