首页 文章

离子框架视图转换正在破裂

提问于
浏览
1

这很奇怪 . 我的(第一个)应用程序中有几个选项卡,每个选项卡都有几个不同的视图 . 是的,要编码的最后一个标签让我感到悲伤 .

当使用桌面浏览器时,绝对没有问题 - 没有损坏的JS,动画是平滑的,一切看起来都很棒,因为我从选项卡仪表板中的视图1转换到视图2,然后从视图2转换到视图3 .

当我构建应用程序并尝试使用我的iPhone(5)时,视图1和2之间的过渡要么完全中断(停止中途),要么在登陆View之前进行迷你癫痫发作(前进和后退,然后再前进) 2.在视图2和视图3之间可以/确实发生相同的事情 . 当我去检查其他不相关的标签/视图时,这种情况永远不会发生 .

我真的完全失去了,因为这种行为只发生在移动设备上的这3个视图中 . 桌面测试环境中没有任何内容 .

我没有代码可以展示,因为我不知道从哪里开始代码 . 没有JS错误,没有 . 我已经注释掉了大部分相关控制器的JS和.html视图代码,只是将$ timoeut与$ state.go一起在视图之间导航(而不是按下按钮),同样的问题就出现了 .

有任何想法吗?这真的是我的头脑 .

谢谢 .

PS . 为了拥有代码,我将为这些视图添加我的路由器代码,因为它几乎是唯一没有被注释掉的代码 - 虽然这个路由器代码与我的应用程序的其余代码非常相似(和直到现在没有问题):

.state('tab.dashboard-add-step-1', {
            url: '/dashboard-add-step-1',
            cache: false,
            data: {
                requireLogin: true
            },
            views: {
                'tab-dashboard': {
                    templateUrl: 'templates/tab-dashboard-add-step-1.html',
                    controller: 'DashboardAddStepOneCtrl as dashboardAddStepOne'
                }
            }
        })
        .state('tab.dashboard-add-step-2', {
            url: '/dashboard-add-step-2',
            cache: false,
            params: {
                'listing': null
            },
            data: {
                requireLogin: true
            },
            views: {
                'tab-dashboard': {
                    templateUrl: 'templates/tab-dashboard-add-step-2.html',
                    controller: 'DashboardAddStepTwoCtrl as dashboardAddStepTwo'
                }
            }
        })
        .state('tab.dashboard-add-step-3', {
            url: '/dashboard-add-step-3',
            cache: false,
            params: {
                'listing':              null,
                'listingAttributes':    null
            },
            data: {
                requireLogin: true
            },
            views: {
                'tab-dashboard': {
                    templateUrl: 'templates/tab-dashboard-add-step-3.html',
                    controller: 'DashboardAddStepThreeCtrl as dashboardAddStepThree'
                }
            }
        })

Update, it gets weirder: 我似乎已将问题缩小到执行步骤之间转换的功能 . 但是,如果从$ timeout调用,则函数完全正常/转换是平滑的 . 但是当通过ng-click或ng-submit调用时,它表现不佳(跳跃/破坏过渡) .

这是简单的代码:

$scope.doStepOne = function() {       
        $state.go('tab.dashboard-add-step-2'); 
    };

    $scope.timer = $timeout(function() {
       $scope.doStepOne(); //the transition when called from here works perfectly         
    }, 5000);

但是当从ng-submit或ng-click调用相同的函数时,转换是混乱/丑陋的:

<button class="button button-calm" ng-click="doStepOne()"> Continue to Step 2</button>

有什么想法吗?我看不出基于事件的函数调用如何与$ timeout的行为不同 .

1 回答

相关问题