routes.js剖析
2015-12-03 16:24
267 查看
您可自由转发此文, 但请保留出处:Ionic在线学习网站 http://www.ioniconline.com
angular.module('starter.routes', [])
.config(function ($ionicConfigProvider, $stateProvider, $urlRouterProvider)
$ionicConfigProvider: 进行设备界面布局全局配置的内置全局变量;
$stateProvider、$urlRouterProvider : 进行路由状态配置的内置全局变量;
ionicConfigProvider可以对tabs风格位置,导航栏标题显示,界面转换动画等进行配置,如:
.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.platform.ios.tabs.style('standard'); //iOS tabs样式配置
$ionicConfigProvider.platform.ios.tabs.position('bottom');// iOS tabs展示位置配置
$ionicConfigProvider.platform.android.tabs.style('standard');// android tabs样式配置
$ionicConfigProvider.platform.android.tabs.position('bottom');// android tabs展示位置配置
$ionicConfigProvider.navBar.alignTitle('center');// 导航栏标题居中配置$ionicConfigProvider.platform.ios.navBar.alignTitle('center');// iOS 导航栏标题居中配置
$ionicConfigProvider.platform.android.navBar.alignTitle('left');// android 导航栏标题居左配置$ionicConfigProvider.platform.ios.backButton.previousTitleText('').icon('ion-ios-arrow-thin-left');// iOS返回按钮图标配置
$ionicConfigProvider.platform.android.backButton.previousTitleText('').icon('ion-android-arrow-back');// android返回按钮图标配置$ionicConfigProvider.platform.ios.views.transition('ios');// iOS界面切换配置
$ionicConfigProvider.platform.android.views.transition('android');// android界面切换配置
}
在访问路由配置这块,ionic没有使用AngularJS的路由模块(ng-route),而是使用 angular-ui项目的ui-route模块。ionic库里面已经整合了ui-route模块,使用时不需要单独引入。
可以抽象地认为视图布局有多个状态,比如:video/music/gallery。 在一个时刻,视图界面只能对应一种状态,而这些状态是在 $stateProvider中配置完成,配置的内容有模板,对应的url,状态机名字,视图等。
.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$stateProvider
.state('video', {
url: '/video',
templateUrl: 'video.html'
})
.state('music', {
url: '/music',
templateUrl: 'music.html'
});
.state('gallery', {
url: '/gallery',
templateUrl: 'gallery.html'
});});
由ui-router中定义的指令ui-sref用来触发状态迁移:
<a ui-sref="video">Go video view</a>
<a ui-sref="music">Go musicview</a>
<a ui-sref="gallery">Go galleryview</a>
触发流程,例如点击音乐链接:
1、跳转触发是状态机服务抽取到 ui-sref="gallery"里面的状态机:gallery并驱动跳转;
2、状态机服务在状态配置里面匹配相应的状态机来进行处理(video/music/gallery);
3、状态机服务在状态配置里面定位到匹配的服务后找出对应定义的处理模板;
4、使用对应的模板渲染显示在ui-view指令指定的视图窗口中。
非 $state 的额外的路由,通过 $urlRouterProvider配置完成,例如:
$urlRouterProvider.when("","/home");
注意哦,这里用的是URL,别写错成state了。
$urlRouterProvider.otherwise("/home");
里面可以放置一些配置相关的内容,包括有界面布局配置,url路由配置等。 这些模块配置,是通过调用angular的config函数得以完成的,例子:
angular.module('starter.routes', [])
.config(function ($ionicConfigProvider, $stateProvider, $urlRouterProvider)
$ionicConfigProvider: 进行设备界面布局全局配置的内置全局变量;
$stateProvider、$urlRouterProvider : 进行路由状态配置的内置全局变量;
ionicConfigProvider可以对tabs风格位置,导航栏标题显示,界面转换动画等进行配置,如:
.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.platform.ios.tabs.style('standard'); //iOS tabs样式配置
$ionicConfigProvider.platform.ios.tabs.position('bottom');// iOS tabs展示位置配置
$ionicConfigProvider.platform.android.tabs.style('standard');// android tabs样式配置
$ionicConfigProvider.platform.android.tabs.position('bottom');// android tabs展示位置配置
$ionicConfigProvider.navBar.alignTitle('center');// 导航栏标题居中配置$ionicConfigProvider.platform.ios.navBar.alignTitle('center');// iOS 导航栏标题居中配置
$ionicConfigProvider.platform.android.navBar.alignTitle('left');// android 导航栏标题居左配置$ionicConfigProvider.platform.ios.backButton.previousTitleText('').icon('ion-ios-arrow-thin-left');// iOS返回按钮图标配置
$ionicConfigProvider.platform.android.backButton.previousTitleText('').icon('ion-android-arrow-back');// android返回按钮图标配置$ionicConfigProvider.platform.ios.views.transition('ios');// iOS界面切换配置
$ionicConfigProvider.platform.android.views.transition('android');// android界面切换配置
}
路由配置 : 状态配置结合额外路由配置机制实现。
在访问路由配置这块,ionic没有使用AngularJS的路由模块(ng-route),而是使用 angular-ui项目的ui-route模块。ionic库里面已经整合了ui-route模块,使用时不需要单独引入。可以抽象地认为视图布局有多个状态,比如:video/music/gallery。 在一个时刻,视图界面只能对应一种状态,而这些状态是在 $stateProvider中配置完成,配置的内容有模板,对应的url,状态机名字,视图等。
状态机配置:
.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {$stateProvider
.state('video', {
url: '/video',
templateUrl: 'video.html'
})
.state('music', {
url: '/music',
templateUrl: 'music.html'
});
.state('gallery', {
url: '/gallery',
templateUrl: 'gallery.html'
});});
状态切换触发
由ui-router中定义的指令ui-sref用来触发状态迁移:<a ui-sref="video">Go video view</a>
<a ui-sref="music">Go musicview</a>
<a ui-sref="gallery">Go galleryview</a>
触发流程,例如点击音乐链接:
1、跳转触发是状态机服务抽取到 ui-sref="gallery"里面的状态机:gallery并驱动跳转;
2、状态机服务在状态配置里面匹配相应的状态机来进行处理(video/music/gallery);
3、状态机服务在状态配置里面定位到匹配的服务后找出对应定义的处理模板;
4、使用对应的模板渲染显示在ui-view指令指定的视图窗口中。
默认路由处理:
非 $state 的额外的路由,通过 $urlRouterProvider配置完成,例如:
将默认页设置为/home的URL。
$urlRouterProvider.when("","/home");注意哦,这里用的是URL,别写错成state了。
任何额外页面的定向:
$urlRouterProvider.otherwise("/home");
您可自由转发此文, 但请保留出处:Ionic在线学习网站 http://www.ioniconline.com
相关文章推荐
- 谈谈JavaScript的2种主要继承方式
- JavaScript Window History与Window Navigator与JavaScript 消息框
- js输入框对金额的匹配
- 推荐一个用于压缩图片的JS插件:localResizeIMG
- javascript,css3加载动画
- javascript第四弹——变量、作用域、内存
- JavaScript Window - 浏览器对象模型与Window Screen与Window Location
- 破解由于异步执行而导致的JS插件未加载就使用的问题
- JS上传图片本地实时预览缩略图
- Javascript操作DOM常用API总结
- js.prototype最深刻的理解
- JavaScript_DOM编程艺术第二版学习笔记-第5章
- js控制浏览器后退
- escape()、encodeURI()、encodeURIComponent()区别详解
- JS根据动态生成的字符串,验证是否存在对应function并执行
- JS正则获取参数值
- 使用 后退键/history.back()出现"警告: 网页已过期的解决办法"
- xStream完美转换XML、JSON
- dTree JS 基本用法
- JavaScript Promise技术