闲语:
最近在讲混合开发的课程,分享下部分课上的笔记,等抽出时间,会把混合开发这部分出一套系列教程。尽管网上遍地都是,但是没有成体系从零到项目上线的。希望可以多多抽出时间吧。
正题:
页面传值笔记路由部分:
一.路由开始部分:
1.state("tab"):
1)《tab》是区域的名字 可以随便写
2)没有《views》的《state》 是路由的开始
3)《tab》这个区域的名字 是其他子视图 标识与这个区域有从属关系的一个前缀
4)区域的名字 必须是一个唯一的
2.url:"/tab"
1)表示路由开始的一个文件位置
2)angularJS会通过这个开始文件的位置 去查找 它属下文件
3.templateUrl:"templates/tabs.html"
1)模板存储在工程中一个位置
2)文件名字 不要写错
二.子视图部分:
1.state("tab.home")
1)子视图部分 区域的名字 名字的前缀《tab》是上一级的名字
2.url:"/home"
1)是文件存储的位置 angularJS 会根据路由的从属关系 来找到对应的文件
3.views:{}
1)子视图 是路由中的一个分支
2)"tab-home"(<1>文件的标识符<2>通过文件的标识符 来确认 要在导航视图中 显示的 模板(视图)<3>可以重复 如果重复就是还在这个页面打开 一般用于 访问下一级页面)<1>templateUrl:"templates/home.html"<2>controller:"homeController" ✭✭✭✭✭注意名字不要写错
三.子视图的二级页面:
1.state("tab.homeDetail")
1)路由区域的名字
2)这个区域的名字 是唯一的✭✭
2.url:"/home/:newsID"
1)✭✭✭✭✭注意:如果是某一个视图的二级页面 需要填上级页面的url拼接上跳转的参数
2)在当前页面 打开另外一个页面
3.views:{}
1)"tab-home"
<1>要打开哪一个文件的名字
<2>✭✭✭✭✭这个名字是他上一页面的名字
2)templateUrl:"templates/homeDetail.html"
3)controller:"homeDetailController"
四.默认开始页面:
$urlRouterProvider.otherwise("/tab/home");
Factory部分:
一:写公共数据 公共方法的位置 可以被全局访问
二:factory("News")
1.它是标识Factory名字 与标识controller的名字类似
2.是通过名字来找到 对应的Factory
3.可以通过得到的Factory名字来查找到他里面的内容
三:获取Factory里面的内容->return{}
控制器部分:
一.控制器的声明周期
1.控制器并不是一直不被销毁的
2.当不再使用的时候 就会被自动销毁
3.它里面的数据也就跟随一起消失
4.尽量不要再里面写逻辑
二.controller("homeController")
1.控制器的名字
2.名字也不要重复
三.服务
1.$scope:
1)可以绑定控制器中的数据
2)只能在当前控制器使用
2.$rootScope:
1)可以绑定控制器中的数据
2)全部控制器 都可以访问到
3.$stateParams
1)可以通过这个服务获得到对应变量的值
4.自定义的服务
1)通过服务名 获得到服务中的内容
视图部分:
一:分栏部分(tabs)
1.分栏的最外层 在他的里面会存在几个分栏 尽量不要写超过5个tab
2.分栏中其中一个选项(ui-sref="tab.home)指向咱们的视图 这样 在切换视图的时候 标题会跟随着去切换
1)《name》与路由中的《views》的名字 要匹配,表示导航视图中 展示的视图 是哪个
二:子视图部分:
1.导航的标题
2.如果有下一届页面 需要添加:href="#/tab/home/{{news.id}}"
1)是在当前页面打开一个视图
2)href的格式要与路由中的格式相同(url:"/home/:newsID")
3)newsID是一个形参 参数
4)在控制器中搜索的《newsID》($stateParams.newsID)就是上面那个形参
以上是课上帮学生记得笔记,未经过整理,大家可以先参考下