【问题标题】:Ionic $timeout not working on phoneIonic $timeout 在手机上不起作用
【发布时间】:2016-03-23 15:39:27
【问题描述】:

我有一个非常简单的控制器,目前只有几个功能。这是一个临时解决方案,但我现在需要让它工作。 它有一个名为 timer 的 $timeout 指令,它在 3 秒内调用 stateForward 函数,然后取消计时器, 转发到下一个视图并清除缓存:

$scope.stateForward = function(){
    if ($scope.navigateBool) {
        $timeout.cancel($scope.timer);
        $state.go('app.newtView');
        $ionicHistory.clearCache();
    }
};


$scope.timer = $timeout(
    $scope.stateForward,
    3000
);

它在浏览器中运行良好,但是当我将它编译到 IOS 或 Android 时,视图只是卡住了,没有任何反应。

【问题讨论】:

  • 您在哪些设备上进行测试?您是在 Windows 或 OSX 机器上开发吗?实际上,您可以使用 Chrome(Android 设备)或 Safari(OSx 设备)的开发人员工具在您的设备上非常轻松地测试您的代码。
  • 你在哪里调用“$scope.timer”函数?
  • @mhx 在 Linux (Fedora 22) 上开发。我已经在真实设备(三星 S3 mini 和 iPhone 5S)上对其进行了测试,这不是问题。问题是 $timeout 在浏览器(Chrome、Mozilla、Safari)中有效,但在手机上无效。
  • 好的,这是个好消息。您熟悉开发人员工具吗?因为通过 Google Chrome 连接时,可以在连接的 Android 设备上实时“检查元素”。只需打开控制台并检查是否有任何错误。你甚至可以添加一些断点,这样你就可以一步一步地检查你的代码。检查此链接以获取更多信息:developers.google.com/web/tools/chrome-devtools/debug/… 如果可以,您能否发布您遇到的错误? (我几乎可以肯定一定有一个)所以我们可以找到解决方案。
  • @mhx 非常感谢您的提示,Chrome 调试器是一个很棒的工具。我想通了,它抛出了 ReferenceError: $ is not defined 错误,因为在下一个视图中我缺少一个 JS 库,所以它没有进入下一个视图,而是停留在当前视图上。

标签: javascript angularjs ionic-framework timeout


【解决方案1】:

实际上,它抛出了 ReferenceError: $ is not defined 错误,因为在下一个视图中它缺少一个 Javascript 库,所以它没有进入下一个视图,而是停留在当前视图。

所以 $timeout 工作正常,构建应用程序时出现问题。该库不包含在 apk 文件中,但这是另一个问题。

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2015-05-07
    • 1970-01-01
    相关资源
    最近更新 更多