转自:http://ngionic.com/2014/12/ionic-javascript-api-ionicconfigprovider/
$ionicConfigProvider
Ionic会自动根据当前平台来调整使用什么样的过渡方式,或是图标应该显示在顶部或底部等等。例如,新版本的页面过渡效果中,iOS将转变为进入视图时从右边至中间,离开视图时从中间至左边。然而,Android却是进入视图时从底部至中心的过渡,覆盖原来的视图,保持静止的。应当指出的是,当平台不是iOS或Android,那么将默认使用iOS的设置。所以如果你是在桌面浏览器中进行开发的话,会使用iOS的默认配置。
这些配置可以用 $ionicConfigProvider
在你的APP运行配置中。另外,在app内部和正在运行时 $ionicConfig
c也可以设置和获取配置信息。
通常,所有基本配置变量被放到 'platform'
这个属性中,这意味着它会在默认配置的平台上运行的。可以在这个层级设置所有平台同样的配置,所有的平台都使用这些基本的的设置,而不是它的平台的默认配置。下面的代码将在所有平台上设置相同的配置变量:
$ionicConfigProvider.views.maxCache(10);
此外,每个平台都有它自己的配置在 $ionicConfigProvider.platform
属性中。接下来的配置只针对安卓设备。
$ionicConfigProvider.platform.android.views.maxCache(5);
用法
var myApp = angular.module('reallyCoolApp', ['ionic']);
myApp.config(function($ionicConfigProvider) {
$ionicConfigProvider.views.maxCache(5);
// note that you can also chain configs
$ionicConfigProvider.backButton.text('Go Back').icon('ion-chevron-left');
});
当然,你也能发现
$ionicConfigProvider.setPlatformConfig(platformName, platformConfigs);
这个方法,第一个参数为String,平台名称android或者ios,第二个参数为对象。
比如:
var configProperties = {
views: {
maxCache: 5,
forwardCache: true,
transition: 'android'
},
navBar: {
// alignTitle: 'center',
// positionPrimaryButtons: PLATFORM,
// positionSecondaryButtons: PLATFORM,
transition: PLATFORM
},
backButton: {
icon: 'ion-chevron-left',
text: 'Go Back',
previousTitleText: false
},
form: {
checkbox: PLATFORM //试了试貌似没有不同的效果呀,抓脑袋
},
tabs: {
style: 'striped',
position: 'bottom'
},
templates: {
// maxPrefetch: 0
}
};
$ionicConfigProvider.setPlatformConfig('android', configProperties);
方法
views.transition(transition)
切换页面的转换方式。默认 platform
.
Param | Type | Details |
---|---|---|
transition | string |
什么转换方式你将使用。
|
- Returns:
string
value
views.maxCache(maxNumber)
视图元素缓存到Dom中的。当超过最大数时,最开始被访问的视图将被删除。视图保存在DOM中会缓存他的视图作用域,当前状态和滚动条的位置。当他被缓存时作用域从$watch
周期断开,而当他再次访问时候又再次链接上了。当缓存的最大数设为0
,历史打开的页面元素将在页面切换的时候从DOM中移除,并且下次访问也会重新解析,添加到DOM中再次连接上元素。这就是关闭缓存的效果。
Param | Type | Details |
---|---|---|
maxNumber | number |
视图保持的. 默认 10 . |
- Returns:
number
Ionic保持多少页面再DOM中,知道有页面从DOM中移除.
views.forwardCache(value)
默认情况下,我们跳转页面时最近访问视图都已被缓存,当再次访问时,相同的实例数据和DOM元素会被引用。然而,当从历史记录访问,“前进”的观点是从缓存中移除。如果你再次跳转到这个视图,它会创建一个新的DOM元素和控制器实例。基本上,任何视图都是每次重新渲染。设置此配置 true 有缓存而不重置在每个加载。
Param | Type | Details |
---|---|---|
value | boolean |
- Returns:
boolean
backButton.icon(value)
返回按钮图标。
Param | Type | Details |
---|---|---|
value | string |
- Returns:
string
backButton.text(value)
返回按钮文本
Param | Type | Details |
---|---|---|
value | string |
Defaults to Back . |
- Returns:
string
backButton.previousTitleText(value)
如果以前的标题文本应该成为后退按钮的文本。这是iOS默认。
Param | Type | Details |
---|---|---|
value | boolean |
- Returns:
boolean
tabs.style(value)
Tab 样式.安卓默认 striped
,IOS默认 standard
.
Param | Type | Details |
---|---|---|
value | string |
可用值包含 striped 和 standard . |
- Returns:
string
tabs.position(value)
Tab 位置. 安卓默认 top
IOS默认 bottom
.
Param | Type | Details |
---|---|---|
value | string |
可用的值为 top 和 bottom . |
- Returns:
string
templates.maxPrefetch(value)
设置$stateProvider.state中定义的templateUrls最大预加载模板数量。如果设置 0
,用户打开一个新页面不得不等待页面加载完毕。默认 30
.
Param | Type | Details |
---|---|---|
value | integer |
$stateProvider.state() .定义的templateUrls中最大模板预加载数量 |
- Returns:
integer
navBar.alignTitle(value)
navBar的标题的对齐方式。默认center
.
Param | Type | Details |
---|---|---|
value | string |
navBar的标题的对齐方式
|
- Returns:
string
value
navBar.positionPrimaryButtons(value)
主导航栏按钮的对齐方式。默认 left
.
Param | Type | Details |
---|---|---|
value | string |
|
- Returns:
string
value
navBar.positionSecondaryButtons(value)
次导航栏按钮的对齐方式. 默认right
.
Param | Type | Details |
---|---|---|
value | string |
|
- Returns:
string
value