ionic新手教程第七课-简要说明几种界面之间的參数传递及优缺点

截至2016年4月13日19点32分,我公布的ionic新手教程,已经公布6课了,

总訪问量将近6000,平均每节课能有1000的訪问量。当中訪客最多的是第三课有2700的訪客。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

事实上我開始的时候计划的挺好的,就依照我这阶段的安排,慢慢的带大家做一个比較完整的项目。

但这几天发生了一些事情,让我不得不又一次思考该跟大家说什么呢?

从訪客数据来看,大家对于总体架构的布置和代码逻辑的规范相对照较感兴趣,也说明大家对基础入门的新建和普通的指令比較了解。

我本来是不打算讲过于基础的东西的,但是今天在技术群里。有个朋友问说ng-repeat怎么用?有人回答他连这个都问。那还怎么做项目。

事实上我知道有些朋友基础比較差,看不懂API文档,或者对文档理解不是非常清晰,可是人家想学啊。

我知道教这种朋友并不须要什么技术。却须要足够的耐心。

并且今天我公司让我带一个零基础的同事学ionic,我打算在6-10天左右。让他上手做项目。

所以从下节课開始,我可能会更新比較基础简单的指令。

言归正传。

当项目慢慢做大,内容和业务越来越多的时候,我们都会涉及到多界面之间的參数传递。

再此我简要的说明一下几种比較经常使用的參数传递方式。

1、通过route传递

这样的方法是在新建tabs类型的ionic项目中就使用到的。

在route中定义了。进入页面的路由接收參数

在界面中传递參数

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

或者在controller中使用代码传递參数

$state.go(‘game-detail‘,{gameId:gameId})

都但是实现从A界面向B界面传递一个字符串类型的数据。相同的方法:/xxxx:/xxxx:/xxx就能够实现向B界面传递多个字符串參数。

长处是代码简单。传递数据通过分享链接返回,数据不会丢失。

缺点是将数据放到url地址中,使得訪问地址过长。

若传递多个參数。在微信分享地址放回是可能导致重定向地址错误。

切忌使用这种方法传递对象,尽管能够实现,可是会有一个很长的url地址。

2、通过$rootScope传递參数

这个更简单点,在A、B界面中注入$rootScope,在A界面使用$rootScope.data={xxx:xxx}||"xxxx".在B界面直接使用$rootScope.data

长处是使用便捷。高效高速,不止能传递字符串还能传递对象。在须要传递较大数据量时,挺好用的。

缺点是代码任意。不规范。到处都是全局变量不好维护,数据常驻内存占用空间。数据保存在本地通过分享链接返回数据丢失。

这种方法不止能够用来传递參数,活用于公共业务和公共模块的处理。也很好用。

可是切忌过于依赖,这个技巧。不然把大量的代码写在run中。会影响项目的启动。

比方通用的loading。能够写在这里,仅仅要项目启动了这两个模块就载入了。

然后再须要的地方$rootScope.$broadcast(‘loading:show‘);就能够了。

相同的在这里定义$rootScope.fun
= func(),也可在全局调用$rootScope.fun()

注意切忌把太多的业务放在这里,后期代码调整和业务改动。真的非常悲催。

3、通过service传递和方法2差点儿相同。就是须要多谢一下代码。优缺点也类似。可是例如法2更加的规范,符合angularjs的设计规范,

不在controller中处理业务,而是交由服务处理。就是A界面引用C服务的setData,B界面引用C服务的getData。

今天的内容有点少了,下次我就讲点基础的。先把在项目中比較经常使用的几个标签说明确了。再安排其它的内容。

最好的方法。忘记说了,通过route传递一个key。然后须要服务端配合。

通过这个key去获取整个对象数据。这样子,无论是分享回来没数据还是url过长,都能够决解

请大家关注一下我的公众号。就算给我一点点鼓舞吧

项目Demo地址:无

假设你还有什么其它的问题,能够通过下面方式找到我

新浪微博:小虎Oni

微信公众号:ionic__

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

时间: 2024-08-01 22:47:07

ionic新手教程第七课-简要说明几种界面之间的參数传递及优缺点的相关文章

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

发了十篇教程,现在向我问问题的朋友越来越少了.可能我接触到的学习ionic的就这么些人吧! 可能大家已经觉得我写的东西都太过基础了,没什么值得参考借鉴的地方. 开始有人叫我说直接防类似饿了吗,折八百这样的网站,做一个Demo. 其实我也知道有些朋友就想要这种网上的免费劳动力. 但是其实这个建议还是不错的. 等我把现在这个demo讲完,我可能会考虑找一个成熟的上线的项目进行说明. 这个列表页一说,写完这个的朋友就可以尝试着接手项目了. 我不是说ionic简单,内容少. 我只是说我这些时间里面提到的

ionic新手教程第三课-在项目中使用requirejs分离controller文件和server文件

继上篇教程中提到的,我们新建一个简单的tabs类型的Ionic项目. 依据文件夹文件我们知道,系统自己主动创建了一个controller文件和server文件,而且把全部的控制器和服务都写到这两个文件中面. 这是一个简单的项目,业务逻辑代码也非常少.这样子实现并没有什么问题.可是当我们的项目越写越多.业务逻辑越来越复杂.假设我们还是把全部的控制器写到同一个文件中面.那可能我们将要面对的就是一个有着上万行代码的文件. 每次编辑仅仅能通过搜索keyword来定位了. 所以真正编辑项目的时候我们应该都

NeHe OpenGL教程 第七课:光照和键盘

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第七课:光照和键盘 光照和键盘控制: 在这一课里,我们将添加光照和键盘控制,它让程序看起来更美观. 这一课我会教您如何使用三种不同的纹理滤波方式.教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的光照.这一课

[译文]JOAL教程 第七课 多普勒效应

[译文]JOAL教程 原文地址:http://jogamp.org/joal-demos/www/devmaster/lesson7.html 原文作者:Athomas Goldberg 译文:三向板砖 转载请保留以上信息. 本节课程对应的学习笔记:http://blog.csdn.net/shuzhe66/article/details/40393371 第七课多普勒效应 本文是DevMaster.net(http://devmaster.net/)的OpenAL教程对应的JOAL版本.C语言

【Mongodb教程 第七课 】MongoDB 查询文档

find() 方法 要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法. 语法 基本的find()方法语法如下 >db.COLLECTION_NAME.find() find() 方法将在非结构化的方式显示所有的文件. pretty() 方法 结果显示在一个格式化的方式,可以使用 pretty() 方法. 语法: >db.mycol.find().pretty() 例子 >db.mycol.find().pretty() { "_id":

Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系

课程目标: ① 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系 ② 懂得怎样使用它们 概念介绍: 1. [共同点]不管对象的作用域怎样,共享变量和获得变量的 方法都是一致的 –setAttribute("varName",obj); –getAttribute("varName"). 2. 变量的作用域 ServletContext–范围最大.应用程序级别的,整个应用程序都能訪问 Htt

[译]Quartz.NET 框架 教程(中文版)2.2.x 之第七课 触发监听器和作业任务监听器

第七课:触发监听器和作业任务监听器 监听器是在调度器中基于事件机制执行操作的对象.你大概可以猜到,触发监听器接收响应跟触发器有关的事件,作业任务监听器接收响应跟作业任务有关的事件. 跟触发器有关的事件包括:触发器被触发,触发器触发失败(在触发器课程中讨论过),以及触发器触发完成(触发器完成后作业任务开始运行). 1 public interface ITriggerListener 2 { 3 string Name { get; } 4 5 void TriggerFired(ITrigger

【OpenCV十六新手教程】OpenCV角检测Harris角点检测

本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/29356187 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本号: 2.4.9 本篇文章中,我们一起探讨了OpenCV

【OpenCV新手教程之十八】OpenCV仿射变换 & SURF特征点描写叙述合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本号: 2.4.9 本篇文章中.我们一起探讨了OpenCV