前端框架OnsenUI学习之ons-navigator介绍
2016-04-11 11:09
393 查看
<ons-navigator>:http://onsen.io/reference/ons-navigator.html#events-summary
<ons-navigator>在OnsenUI中的定义是,作为一个页面堆栈管理器,并且负责页面跳转和动画渲染工作。一个新的页面加到栈中都会有一个动画作为过渡。栈中所有的元素都是组件页<ons-page>的形式,因此只有<ons-page>可以直接放在<ons-navigator>下面。
<ons-navigator>提供了一系列属性、事件和方法供开发者使用。
Attribute
[b]属性用法:[/b]
<ons-navigator var="myNavigator" page="index.html" ons-prepush="doSomething()">
</ons-navigator>
Methods
例如:pushPage(pageUrl, [options]):页面跳转,其中pageUrl为页面相对路径,options表示跳转参数配置,可以携带参数、设置page的切换动画以及完成后的动作。
参数类型可以是普通的字符串、数字、布尔型、实体、集合等等。
var options = {
'param': '这是参数'; //参数
animation: 'slide', //表示page切换渲染效果
onTransitionEnd: function() {} //表示完成动画后执行
};
方法用法:
1、A页面跳转到B页面并传值:
myNavigator.pushPage("page2.html",
options);
2、B页面接收传值:
var
page = myNavigator.getCurrentPage();
console.log(page.options.param);
// Will
return "value1"
3、A页面接收B页面的回传值:
$scope.mainNavi.on('postpop', function(e) { //添加跳转完成监听器
$scope.$apply(function() {
if(e.leavePage.name == 'pages/addRoute.html'){
$scope.routes = storedb('routeline').find();
$scope.mainNavi.off('postpop');//移除监听器
}
});
});
4、getPages()用法:
var
pages = navigator.getPages(); pages[pages.length - 2].destroy();
Events
事件用法:myNavigator.on('prepush', function(event) { //doSomething });
1、prepush/prepop:
2、postpush/postpop:
<ons-navigator>在OnsenUI中的定义是,作为一个页面堆栈管理器,并且负责页面跳转和动画渲染工作。一个新的页面加到栈中都会有一个动画作为过渡。栈中所有的元素都是组件页<ons-page>的形式,因此只有<ons-page>可以直接放在<ons-navigator>下面。
<ons-navigator>提供了一系列属性、事件和方法供开发者使用。
Attribute
[b]属性用法:[/b]
<ons-navigator var="myNavigator" page="index.html" ons-prepush="doSomething()">
</ons-navigator>
Methods
例如:pushPage(pageUrl, [options]):页面跳转,其中pageUrl为页面相对路径,options表示跳转参数配置,可以携带参数、设置page的切换动画以及完成后的动作。
参数类型可以是普通的字符串、数字、布尔型、实体、集合等等。
var options = {
'param': '这是参数'; //参数
animation: 'slide', //表示page切换渲染效果
onTransitionEnd: function() {} //表示完成动画后执行
};
方法用法:
1、A页面跳转到B页面并传值:
myNavigator.pushPage("page2.html",
options);
2、B页面接收传值:
var
page = myNavigator.getCurrentPage();
console.log(page.options.param);
// Will
return "value1"
3、A页面接收B页面的回传值:
$scope.mainNavi.on('postpop', function(e) { //添加跳转完成监听器
$scope.$apply(function() {
if(e.leavePage.name == 'pages/addRoute.html'){
$scope.routes = storedb('routeline').find();
$scope.mainNavi.off('postpop');//移除监听器
}
});
});
4、getPages()用法:
var
pages = navigator.getPages(); pages[pages.length - 2].destroy();
Events
事件用法:myNavigator.on('prepush', function(event) { //doSomething });
1、prepush/prepop:
2、postpush/postpop:
相关文章推荐
- 跨平台移动WEB应用开发框架iMAG入门教程
- PHP跨平台获取服务器IP地址自定义函数分享
- 对Web开发中前端框架与前端类库的一些思考
- 跨平台python异步回调机制实现和使用方法
- [图]Firefox OS 2.5发布:可安装至Android手机上
- 很难吗?教你三天精仿一个跨平台的微信
- 跨平台音频项目
- [转]CSS 那么多属性,而且每个属性都有多个值怎么记?
- 关于 Subversion 协议动态代理服务器
- HTML5简介
- [转]C++强大背后
- [游戏资讯][转]《反恐精英:全球攻势》要实现跨平台对战
- 前端学习随笔 -- 前端框架
- 寻找中国音视频开发行业的翘楚
- 史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发
- jqueryMobile应用第一课《构建跨平台APP:jQuery Mobile移动应用实战》连载一(Hello World)
- jquery Mobile应用第2课《构建跨平台APP:jQuery Mobile移动应用实战》连载二(简单的QWER键盘)
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载三(通过实例来体验生命周期)
- 浅略探讨当今视频文件格式
- 即时通讯跨平台特性