[关闭]
@mansonchor 2014-04-14T09:07:35.000000Z 字数 2049 阅读 749

page.new_page( [options] )

@return {frame page类实例}

@param {json} options

{json} route : 页面的路由配置,基础是backbone的route

  1. options.route = { "index": "index" }

也可以组建带参数的url hash

  1. options.route = { "last/:art_id": "last" } //能匹配 #last/1000 等url hash
  2. options.route = { "cat/:cat_id/:art_id": "cat" } //能匹配 #cat/2/1000 等url hash

也可通过()设置非强制参数

  1. options.route = { "hot/(:is_big_img)": "hot" } //能匹配 #hot 和 #hot/true
  2. options.route = { "cat/:cat_id/(:art_id)": "cat" } //能匹配 #cat/2/1000 和 #cat/2

url参数可在页面的 page_init page_show 等监听下接收到

  1. //页面路由配置
  2. options.route = { "last/:art_id": "last" }
  3. options.page_init = function(page_view , params)
  4. {
  5. //params是一个数组,依次是url传递的参数
  6. var art_id = params[0] //url的第一个参数,即art_id
  7. }
  8. return options

{string} title : 路由到该页面时,浏览器的title显示

{bool} dom_not_cache [defalut false]: 当前页面返回上一页面后,是否把该页从dom remove掉

{bool} ignore_exist [defalut false]: 当路由到该页面已经存在时,是否忽略存在再另外新建一个页面

这里几个情况要说明一下:

1.一些静态的页面,创建了之后建议保留下来;需要每次动态获取数据的页面,可以设置成true

2.当路由到一个页面时,框架会自动判断是否已经存在,假如存在将不会重新创建一个新页面,除非 ignore_exist为true

3.路由到一个存在的页面时,不会触发 page_init 监听

{emum} transition_type [ none , slide , slide reverse , slideup , fade ] :页面的转场效果

效果DEMO

{json} events :页面的事件定义,语法 参考backbone视图(view)的events

在page里,可以定义监听各种手势事件,底层依赖的是hammer

  1. options.events = {
  2. 'tap' : function(ev)
  3. {
  4. alert('tap')
  5. },
  6. 'doubletap' : function(ev)
  7. {
  8. alert('doubletap')
  9. }
  10. }

DEMO

{function} initialize : 如果定义了该函数,页面view创建时会调用

一般用作page框架render

{function} page_init : 如果定义了该函数,页面view创建时会调用

它的调用在initialize之后,一般用作异步获取数据等操作

{function} page_before_show : 如果定义了该函数,页面在进入可视区域前会调用

{function} page_show : 如果定义了该函数,页面在完全进入可视区域后会调用

它和 page_before_show 的调用时机差别,在于转场效果会占用一定的动画时间
假如没有转场效果,理论上 page_before_show 和 page_show 的调用时间一致

{function} page_before_hide : 如果定义了该函数,页面在退出可视区域前会调用

{function} page_hide : 如果定义了该函数,页面在完全退出可视区域后会调用

两个页面之间的切换,进场页面的 page_show 是呼应着退场页面的 page_hide 的

DEMO

{function} window_change : 如果定义了该函数,页面在屏幕范围大小变化时会调用

例如:手机横竖屏变化、某些浏览器导航条的折叠等,都会引发

page_view和参数的触发回调

  1. options.page_init = function(page_view , params , state)
  2. {
  3. console.log(page_view) //页面view
  4. console.log(params) //url hash参数
  5. console.log(state) //页面间传递的参数
  6. }

page_init page_before_show page_show window_change 的回调中,会带上参数,方便控制进行业务开发

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注