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" alt="">
事实上我開始的时候计划的挺好的,就依照我这阶段的安排,慢慢的带大家做一个比較完整的项目。
但这几天发生了一些事情,让我不得不又一次思考该跟大家说什么呢?
从訪客数据来看,大家对于总体架构的布置和代码逻辑的规范相对照较感兴趣,也说明大家对基础入门的新建和普通的指令比較了解。
我本来是不打算讲过于基础的东西的,但是今天在技术群里。有个朋友问说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" alt="">
或者在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" alt="">
ionic新手教程第七课-简要说明几种界面之间的參数传递及优缺点的更多相关文章
- ionic新手教程第八课-(加更)从无到有说Ionic、绘图说明MVC-U-S
这节课的内容,有些前面几节已经说过了. 公司这次给我一个任务,让我带一个没有编程基础的同事学习ionic. 今天是我跟他讲的第一课,晚上把讲的笔记整理了一下,认为还是挺适合零基础的朋友学习的. 有些前 ...
- ionic新手教程第三课-在项目中使用requirejs分离controller文件和server文件
继上篇教程中提到的,我们新建一个简单的tabs类型的Ionic项目. 依据文件夹文件我们知道,系统自己主动创建了一个controller文件和server文件,而且把全部的控制器和服务都写到这两个文件 ...
- Lance老师UI系列教程第八课->新浪新闻SlidingMenu界面的实现
UI系列教程第八课:Lance老师UI系列教程第八课->新浪新闻SlidingMenu界面的实现 今天蓝老师要讲的是关于新浪新闻侧滑界面的实现.先看看原图: 如图所示,这种侧滑效果以另一种方式替 ...
- NeHe OpenGL教程 第七课:光照和键盘
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 【JS新手教程】LODOP打印复选框选中的任务或页数
之前的博文:[JS新手教程]LODOP打印复选框选中的内容关于任务:Lodop打印语句最基本结构介绍(什么是一个任务)关于本文用到的JS的eval方法:JS-JAVASCRIPT的eval()方法该文 ...
- 新手介绍简单一下iOS开发中几种界面传值
首先在处理iOS-UI中,也许在很多地方需要用到两种甚至多种不同界面之间的传值,相比这也是很多iOS入门成员头疼问题,同样作为新手的我在接触这类传值时候也一脸懵然,经过一段时间的研究,对于简单的传值有 ...
- 【Mongodb教程 第七课 】MongoDB 查询文档
find() 方法 要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法. 语法 基本的find()方法语法如下 >db.COLLECTION_NAME.find() ...
- Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系
课程目标: ① 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系 ② 懂得怎样使用它们 概念介绍: 1. [共同点]不管对 ...
- 开发新手教程【三】Arduino开发工具
Arduino开发环境搭建 获取Arduino IDE开发工具 下载地址 :http://arduino.cc/en/Main/Software 能够下载release 版.Beta版和前期版本号 A ...
随机推荐
- java中split任意数量的空白字符
java程序中经常通过split截取字符串来取得其中的关键字.但是由于其中不同操作系统或者不同作者的习惯,经常会出现不同数量的空格,例如" "(3个空格):或者出现制表符.Ta ...
- SQLite中的内连接简化技巧
SQLite中的内连接简化技巧 在SQLite中,通过内连接可以将两个表通过条件表达式关联起来,构成一个新记录集或视图.形式如下: SELECT ... FROM t1 JOIN t2 ON ...
- CV2
Education 2008-09 - 2012-07 Xian Peihua University English Junior CollegeTarget Jobs: Project Man ...
- PHP缩略图类
class ThumbImages{ /** * 生成缩略图 * prorate 按比例缩放 * distortion 扭曲型缩图 * cut 最小裁剪后的缩图 * backFill 背景填充图 * ...
- Intellij IDEA 14.x 菜单项中Compile、Make和Build的区别
Compile.Make和Build的区别 针对Java的开发工具,一般都有Compile.Make和Build三个菜单项,完成的功能的都差不多,但是又有区别. 编译,是将源代码转换为可执行代码的过程 ...
- Java 并发工具包 java.util.concurrent 用户指南(转)
本文转自http://blog.csdn.net/defonds/article/details/44021605/ 感谢作者 1. java.util.concurrent - Java 并发工具包 ...
- form表单提交之前判断
1.使用onsubmit方法 <form name="Form" action="t" method="post" onsubmit= ...
- setInterval/setTimeout传参方法
网上文章说有3种方法,对于我来说一种方法就够了: <script> var user_name='离间计' //定时器 异步运行 function hello(name){ alert(n ...
- Hibernate分页功能数据重复问题
今天遇到一个很憋屈的问题那就是hibernate分页查询中出现重复数据,本来一直没有在意,以为是数据问题,但是一查程序和数据都没有问题,继续深入查看,找到问题了就是order By 时出的问题,唉.. ...
- Redis缓存清理
Redis缓存清理 学习了:https://www.cnblogs.com/ZnCl/p/7116870.html 使用 redis-cli.exe登录, 使用flushall 命令: 或者key * ...