ionic开发中的一些坑(持续更新中。。。)
ychow opened this issue · 37 comments
- 如果app有使用tabs,那么在真机上运行时,有的android手机tabs跑到了顶部,而在ios或者ipad上tabs还是在底部的,这是因为1.3.2以后版本默认是使用了以ios为模型的,如果想在android上tabs也是显示在底部,添加以下代码即可:
// 在app.js里面添加
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.platform.android.tabs.position("bottom");
$ionicConfigProvider.tabs.style('standard');
});
- 在把ionic升级到1.3.2版本以后,默认的返回按钮都是带有"text"属性的,之前的版本在index.html中统一配置返回按钮样式取消"text"属性不起作用了,如果想要取消,添加以下代码即可:
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.backButton.text('').icon('ion-ios7-arrow-thin-left');
$ionicConfigProvider.backButton.previousTitleText(false);
$ionicConfigProvider.navBar.alignTitle('center');
});
- 最近遇到了一个问题,其实这问题导致的原因还是因为自己没有把 Ionic 的文档仔细看过。在 IONIC beta.14 版本中,Ionic 团队增加了视图缓存。那什么是视图缓存呢?
- 之前用户一旦在应用程序中执行导航动作,每个退出的视图元素和scope都会被销毁.如果相同的视图再次被访问,应用程序会重新生成元素.现在,视图可以被缓存以提高性能。
- 现在,当一个视图退出之后,元素将被遗留在DOM中,它的scope在这段时间内会被断开.当导航至一个已经被缓存的视图中,它的scope会被重新链接,并且其遗留在DOM中的元素会被重新激活到当前视图。
但是在实际开发中,有时候这其实是一个坑! 还好 Ionic 为开发者提供了一个配置选项,你可以在你的路由里添加 ** cache: false**来禁止视图缓存。当然个别的ionView可以通过设置cache-view=”false”属性。你也可以查看详细的文档 ----> ionNavView/
- 最近使用了slide-box做了一个幻灯片。当然图片也是ajax取的,所以这里大家就会遇到一个问题,当你使用ng-repeat循环的时候,发现宽度为0!不要惊慌!Ionic里面已经有了相关的解决方案 --> $ionicSlideBoxDelegate
$timeout( function() {
$ionicSlideBoxDelegate.update();
}, 50);
- 当我们想让我们应用的tabs在底部,让标题居中的时候,我们可以在config里面添加如下几句:
$ionicConfigProvider.navBar.alignTitle("center");
$ionicConfigProvider.platform.android.tabs.position("bottom");
$ionicConfigProvider.tabs.style("standard);
关于IOS9下ionic应用的Bug解决方案!
如果你是Web应用(浏览器访问的网站),那么你一定会遇到过在ios9下,点击会乱跳,或是链接失效的Bug。其实仔细观看ionic官方blog,ionic团队已经给出了对应的解决方案!更新你的ionic版本!
使用bower下载最新的ionic版本,替换掉之前使用的ionic.bundle.js!
bower install driftyco/ionic-bower#master
add the bug about Slide-Box
还有$scope并不能给view-title赋值!
@dongnaebi 有例子吗?这种应该可以的
出现在切换视图的时候,比如列表页进详细页
.......
请求结束后其他地方都渲染了,就这里没变。
如果直接在详细页刷新是会变的
@dongnaebi 绑定数据的时候 最好是对象绑定 。试试吧
还有在Android中为什么cancleButton不可见呢?ios中就是可见的。我初学,好多都还没搞明白
$scope.actionsheet=function(){
$ionicActionSheet.show({
buttons:[
{ text: "分享"}
],
destructiveText: "删除",
destructiveButtonClicked: function(){
console.log("destructiveText is triggle");
return true;
},
cancelText: "取消", //好像在Android中这个是被隐藏的
cancle: function(){
console.log('cancle is triggle');
},
buttonClicked: function(index){
console.log(index)
return true;
}
})
};
基本是官网的代码
@ychow
哥们,这教程还更新么
谢谢了,刚接触ionic,看网上的教程里都是直接绑定的变量,没想到会出问题。
哥们,我在上拉加载更多的ion-infinite-scroll 加了 immediate-check='false' 属性,页面显示的时候还是会默认加载一次,这是什么问题
ios用header-bar自己写的头都有问题
@MissSui
1、是bar-header吗? 具体有什么问题呢?我们也用过没有发现它有啥问题。
2、关于slidebox的这个问题具体是什么意思?没有看明白
1.头部问题:在ios系统和android中自定义的头会有问题,尤其是加了logo之后,但是这个可以通过控制样式来改变
2.slidebox做轮播图的时候循环会有问题
循环应该没有问题。加上参数就行了
之前楼上说的那个ActionSheet的样式问题有没有好的解决办法?
用ionic开发的应用,当页面超出一屏即当页有上下滚动条时,在苹果手机上点击输入框时,键盘弹出时,页面的头部会向下移动一下再回到顶部,即出现头部跳一下的情况,这种情况有解决方案么?谢谢!
@andymiao858 ionic-team/ionic-framework#2285 看看这里 貌似是你要的
iOS上有的时候在软键盘右上方会出现一个英文的"DONE",如何改成中文的。。
把输入框input定位在最下边,ios 输入框获取到焦点弹出键盘后会导致整个内容页顶上去;有好的解决办法吗?
使用背景图片,然后在里面布局input,input输入的时候会把真个背景图顶上去。。。怎么破!求助
页面的内容区域是引的iframe 单页跳转 导航栏的返回按钮怎么实现在首页的情况下隐藏(单页内跳转 URL不变)