【问题标题】:Why Angularjs only runs after scrolling the screen on iphone safari为什么 Angularjs 只在 iphone safari 上滚动屏幕后运行
【发布时间】:2015-11-05 22:12:14
【问题描述】:

我正在构建一个 Web 应用程序并使其具有响应性,它可以在桌面和移动设备上的 chrome 中正常工作,但是 safari 非常棘手,以至于 angularjs 代码只有在你向下滚动屏幕一点后才能运行,我找不到网站上的任何答案。

代码很简单,当设备屏幕在某个范围内时,我只想显示或不显示一些 dom,但不知何故不适用于 safari iphone

    app.controller('searchCtrl', ['$scope', function ($scope) {


  (function init(){
    removeDom();
  })();

  function removeDom()
  {
      if (window.innerWidth>=668)
            {
                $scope.rm668 = true;
            }
            else
            {
                $scope.rm668 = false;
            }
      if (window.innerWidth>768)
        {
            $scope.rm768 = true;
        }
        else
        {
            $scope.rm768 = false;
        }
  }

  $(window).on("resize.doResize", function (){

        $scope.$apply(function(){
            removeDom();
        });
    });

    $scope.$on("$destroy",function (){
        //remove the handler added earlier
         $(window).off("resize.doResize"); 
    });

}])

【问题讨论】:

  • 需要显示代码,目前这个太模糊了……
  • 是的,很抱歉这些模棱两可的问题!代码在这里!多谢!!这对我来说是一个很大的痛苦。

标签: angularjs web-applications responsive-design safari


【解决方案1】:

问题解决了!我只需要将以下代码放入 init 函数中即可达到角度摘要循环。 !!

   $scope.$apply(function(){
            removeDom();
      });

【讨论】:

    猜你喜欢
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    相关资源
    最近更新 更多