Blog icon indicating copy to clipboard operation
Blog copied to clipboard

ionic开发中的一些坑(持续更新中。。。)

Open ychow opened this issue 10 years ago • 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

ychow avatar Mar 13 '15 15:03 ychow

add the bug about Slide-Box

ychow avatar Apr 08 '15 06:04 ychow

还有$scope并不能给view-title赋值!

dongnaebi avatar Jul 03 '15 07:07 dongnaebi

@dongnaebi 有例子吗?这种应该可以的

ychow avatar Jul 03 '15 08:07 ychow

出现在切换视图的时候,比如列表页进详细页 ....... 请求结束后其他地方都渲染了,就这里没变。 如果直接在详细页刷新是会变的

dongnaebi avatar Jul 03 '15 08:07 dongnaebi

@dongnaebi 绑定数据的时候 最好是对象绑定 。试试吧

ychow avatar Jul 03 '15 08:07 ychow

还有在Android中为什么cancleButton不可见呢?ios中就是可见的。我初学,好多都还没搞明白

floraluo avatar Sep 28 '15 07:09 floraluo

@floraluo cancelButton??? 有demo吗?或者该button的代码

ychow avatar Sep 28 '15 07:09 ychow

image

$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 avatar Oct 10 '15 02:10 floraluo

@floraluo 样式的问题

ychow avatar Oct 11 '15 07:10 ychow

哥们,这教程还更新么

berial avatar Nov 10 '15 02:11 berial

@Berial 如果遇到ionic的什么坑 可以在下面回复。 你指的教程是指ionic中文指南这个吗? 如果您觉得还缺什么,可以告诉我。

ychow avatar Nov 10 '15 02:11 ychow

@ychow 直接往$scope上绑定表单数据的时候,有可能在controller中会取不到值,但是用js的document就可以

berial avatar Nov 10 '15 02:11 berial

@Berial 你是用对象绑定的方式,还是变量绑定。最好使用对象绑定的方式!

ychow avatar Nov 10 '15 02:11 ychow

@ychow 之前用的变量绑定,发现不行听别人的建议改成了对象绑定,但是为什么变量绑定会取不到值呢

berial avatar Nov 10 '15 02:11 berial

@Berial 这是js本身的问题了。js对象是存的内存地址。变量是直接存的内存

ychow avatar Nov 10 '15 02:11 ychow

谢谢了,刚接触ionic,看网上的教程里都是直接绑定的变量,没想到会出问题。

berial avatar Nov 10 '15 02:11 berial

@Berial 网上的教程都是速成。最好的学习方式就是直接看官方文档。ionic的文档写得还是不错的

ychow avatar Nov 10 '15 02:11 ychow

@ychow 我是做Android的,但公司让我接手一个ionic的项目,给的时间很少,只能求个速成,文档还是在看,不过英文太烂,看起来比较吃力。

berial avatar Nov 10 '15 02:11 berial

@Berial 加油

ychow avatar Nov 10 '15 02:11 ychow

哥们,我在上拉加载更多的ion-infinite-scroll 加了 immediate-check='false' 属性,页面显示的时候还是会默认加载一次,这是什么问题

berial avatar Nov 14 '15 07:11 berial

@Berial 啥意思 最好有代码或是效果图

ychow avatar Nov 16 '15 03:11 ychow

@ychow 不用了,改好了

berial avatar Nov 16 '15 04:11 berial

ios用header-bar自己写的头都有问题

niuqiong avatar Dec 02 '15 03:12 niuqiong

@MissSui
1、是bar-header吗? 具体有什么问题呢?我们也用过没有发现它有啥问题。 2、关于slidebox的这个问题具体是什么意思?没有看明白

ychow avatar Dec 02 '15 03:12 ychow

1.头部问题:在ios系统和android中自定义的头会有问题,尤其是加了logo之后,但是这个可以通过控制样式来改变 2.slidebox做轮播图的时候循环会有问题

niuqiong avatar Dec 07 '15 12:12 niuqiong

循环应该没有问题。加上参数就行了

ychow avatar Dec 09 '15 07:12 ychow

之前楼上说的那个ActionSheet的样式问题有没有好的解决办法?

lllang avatar Dec 14 '15 08:12 lllang

@lllang 在配置里面统一下就行了

ychow avatar Dec 21 '15 02:12 ychow

用ionic开发的应用,当页面超出一屏即当页有上下滚动条时,在苹果手机上点击输入框时,键盘弹出时,页面的头部会向下移动一下再回到顶部,即出现头部跳一下的情况,这种情况有解决方案么?谢谢!

andymiao858 avatar Jan 21 '16 06:01 andymiao858

@andymiao858 https://github.com/driftyco/ionic/issues/2285 看看这里 貌似是你要的

ychow avatar Jan 21 '16 07:01 ychow