ionic入门教程第十一课-简要说明ion-list、ion-item完成列表页ion-infinite-scroll上拉加载ion-refresher下拉刷新

ionic入门教程第十一课-简要说明ion-list、ion-item完成列表页ion-infinite-scroll上拉加载ion-refresher下拉刷新

发了十篇教程,现在向我问问题的朋友越来越少了。可能我接触到的学习ionic的就这么些人吧!

可能大家已经觉得我写的东西都太过基础了,没什么值得参考借鉴的地方。

开始有人叫我说直接防类似饿了吗,折八百这样的网站,做一个Demo。

其实我也知道有些朋友就想要这种网上的免费劳动力。

但是其实这个建议还是不错的。

等我把现在这个demo讲完,我可能会考虑找一个成熟的上线的项目进行说明。

这个列表页一说,写完这个的朋友就可以尝试着接手项目了。

我不是说ionic简单,内容少。

我只是说我这些时间里面提到的内容已经足够入门了。

后续的学习还是要从项目中开始会比较科学。

其实我讲的都有些多了,关于基础中的基础,无非就是MVC,服务控制器视图之间如何交互,如何双向绑定,如何使用ionic标签,如何遍历数组。

言归正传,开始我们今天的课程吧。

首先我们看一下这节课要实现的功能:


我们要做的是上图中这样的列表页,首先简单分析我们就能知道,列表页里面的子项都是一样的样式,只不过数据有差别而已。

所以我们这里只要编写一个子项的样式,然后通过使用ng-repeat进行循环遍历数据数组,就等得到我们想要的列表页。


通过分析这个子项,我们能够知道这东西大致由三个部分组成,

左边的图片,中间的文本说明区域,右边的按钮。

查阅ionic的itemAPI,我们找到这样一个样式


图片来自:http://www.fed123.com/2014/08/09/2014_ionic_api_css/ 

还是我上次讲的原则,能用ionic的样式就先用ionic的样式,能少敲一行代码,就少敲一行。

从服务器获取数据这个就不说了,前面说了很多了。


基本上没敲什么代码,就完成了大半了,现在再加入一个按钮


这样基本所有的功能就都有了,然后根据效果图,对css做部分的微调。

然后在

这个相当于是for(var key in items){这里是a标签包含的所有html,都会被复制 }


恩,界面跟我们要的不一样,所以手动修改吧,这里贴代码了,直接看Demo吧。

接下来,我们来看比较常见的,列表页附加需求,上拉加载、下拉刷新。

这两个功能现在都是默认必须有的,产品经理在写需求时都懒得写到需求文档里面的。

只要提到列表页,一定要有这两个功能。恩,有些固定内容的列表页并不需要,当我胡扯的。

先说上拉加载:这个是放在</ion-content>之前的,也就是界面的最下面

<ion-infinite-scroll on-infinite="loadMore()" distance="1%" ng-if="!noMore">
</ion-infinite-scroll>
ng-if是指这个控件的显示或隐藏。
这里要注意和ng-show的区别,ng-show和ng-hide是使用css的方法显示和隐藏控件,实际是还存在的。ng-if则是移除和添加。这个是有本质上的区别的在实际情况下,要根据业务的需要进行选择,如果需要重复高频的显示隐藏可以考虑使用ng-show,如果隐藏之后不再需要显示则最好使用ng-if
distance是指当滑块(就是滚动条的那个滑块,不显示还是存在的)距离底部多少的时候触发事件。

on-infinite是指绑定的触发事件。
值得注意的是,这个事件要在处理完响应之后,抛出scroll.infiniteScrollComplete事件

这里扩展说明一下;
$emit只能向parent controller传递event与data
$broadcast只能向child controller传递event与data
$on用于接收event与data
详细的可以参考:http://www.tuicool.com/articles/qIBNve 我这里不在重复了。
下拉刷新用的是
<ion-refresher pulling-text="下拉刷新..." on-refresh="doRefresh()">
</ion-refresher>
注意这个是放在<ion-content >之后的,也就是界面的最上面。注意和上拉加载的区别

注意这里在事件响应结束的时候,要抛出scroll.refreshComplete事件,和上拉加载的事件是不一样的。
到此这节课的内容就结束了。
项目Demo地址:http://pan.baidu.com/s/1c2a48E0
 
 
--- 转自:http://blog.csdn.net/onil_chen/article/category/6113346 ---
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ionic侧边栏是一个非常实用的组件,可以让用户轻松地在不同的面之间进行导航。ion-side-menus是Ionic中用于创建侧边栏的指令,它提供了多个选项来控制侧边栏的外观和功能。 要使用ion-side-menus指令,需要在HTML中创建一个包含ion-side-menus指令的容器元素。然后,在容器中定义一个ion-side-menu-content指令,用于指定主要内容区域。在主要内容区域中,可以使用ion-nav-view指令来显示不同的面。 在侧边栏中,可以使用ion-side-menu指令来定义侧边栏的内容。可以在侧边栏中包含任意数量的元素,包括列表、按钮和链接等。 当用户在侧边栏中选择一个项目时,可以使用ion-tap指令来处理点击事件。ion-tap指令可以与ng-click指令一起使用,用于在视图中触发特定的函数或操作。 下面是一个示例代码,展示了如何使用ion-side-menus和ion-tap指令来创建一个具有侧边栏导航的Ionic应用: ``` <ion-side-menus> <!-- 左侧侧边栏 --> <ion-side-menu side="left"> <ion-header-bar class="bar-dark"> <h1 class="title">菜单</h1> </ion-header-bar> <ion-content> <ion-list> <ion-item ng-click="openPage('home')">首</ion-item> <ion-item ng-click="openPage('about')">关于</ion-item> <ion-item ng-click="openPage('contact')">联系我们</ion-item> </ion-list> </ion-content> </ion-side-menu> <!-- 主要内容区域 --> <ion-side-menu-content> <ion-header-bar class="bar-dark"> <button class="button button-icon ion-navicon" ng-click="toggleLeft()"> </button> <h1 class="title">我的应用</h1> </ion-header-bar> <ion-nav-view></ion-nav-view> </ion-side-menu-content> </ion-side-menus> ``` 在上面的代码中,我们创建了一个包含ion-side-menus指令的容器元素。在容器中,我们定义了一个包含ion-side-menu指令的左侧侧边栏,并在其中添加了一些项目。在主要内容区域中,我们使用ion-nav-view指令来显示不同的面,并使用ion-header-bar指令来添加导航栏。在导航栏中,我们添加了一个按钮,用于打开左侧侧边栏,并使用ion-tap指令来处理点击事件。 最后,我们还需要在控制器中定义一个openPage函数,用于在点击侧边栏中的项目时导航到不同的面。 ``` .controller('MyCtrl', function($scope, $ionicSideMenuDelegate, $state) { $scope.openPage = function(page) { $ionicSideMenuDelegate.toggleLeft(false); $state.go(page); }; $scope.toggleLeft = function() { $ionicSideMenuDelegate.toggleLeft(); }; }); ``` 在上面的代码中,我们定义了一个openPage函数,用于在点击侧边栏中的项目时导航到不同的面。我们还定义了一个toggleLeft函数,用于打开或关闭左侧侧边栏。在openPage函数中,我们通过$state.go函数来导航到不同的面,并在导航完成后关闭左侧侧边栏。在toggleLeft函数中,我们使用$ionicSideMenuDelegate.toggleLeft函数来打开或关闭左侧侧边栏。 总之,使用ion-side-menus和ion-tap指令可以轻松创建具有侧边栏导航的Ionic应用,并实现侧边栏中项目的点击事件处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值