Blog
Blog copied to clipboard
ionic开发中的一些坑(持续更新中。。。)
- 如果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中就是可见的。我初学,好多都还没搞明白
@floraluo cancelButton??? 有demo吗?或者该button的代码

$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
@floraluo 样式的问题
哥们,这教程还更新么
@Berial 如果遇到ionic的什么坑 可以在下面回复。 你指的教程是指ionic中文指南这个吗? 如果您觉得还缺什么,可以告诉我。
@ychow 直接往$scope上绑定表单数据的时候,有可能在controller中会取不到值,但是用js的document就可以
@Berial 你是用对象绑定的方式,还是变量绑定。最好使用对象绑定的方式!
@ychow 之前用的变量绑定,发现不行听别人的建议改成了对象绑定,但是为什么变量绑定会取不到值呢
@Berial 这是js本身的问题了。js对象是存的内存地址。变量是直接存的内存
谢谢了,刚接触ionic,看网上的教程里都是直接绑定的变量,没想到会出问题。
@Berial 网上的教程都是速成。最好的学习方式就是直接看官方文档。ionic的文档写得还是不错的
@ychow 我是做Android的,但公司让我接手一个ionic的项目,给的时间很少,只能求个速成,文档还是在看,不过英文太烂,看起来比较吃力。
@Berial 加油
哥们,我在上拉加载更多的ion-infinite-scroll 加了 immediate-check='false' 属性,页面显示的时候还是会默认加载一次,这是什么问题
@Berial 啥意思 最好有代码或是效果图
@ychow 不用了,改好了
ios用header-bar自己写的头都有问题
@MissSui
1、是bar-header吗? 具体有什么问题呢?我们也用过没有发现它有啥问题。
2、关于slidebox的这个问题具体是什么意思?没有看明白
1.头部问题:在ios系统和android中自定义的头会有问题,尤其是加了logo之后,但是这个可以通过控制样式来改变 2.slidebox做轮播图的时候循环会有问题
循环应该没有问题。加上参数就行了
之前楼上说的那个ActionSheet的样式问题有没有好的解决办法?
@lllang 在配置里面统一下就行了
用ionic开发的应用,当页面超出一屏即当页有上下滚动条时,在苹果手机上点击输入框时,键盘弹出时,页面的头部会向下移动一下再回到顶部,即出现头部跳一下的情况,这种情况有解决方案么?谢谢!
@andymiao858 https://github.com/driftyco/ionic/issues/2285 看看这里 貌似是你要的