控制器经常被调用,但仅限于 iOS 上的 Chrome

Posted

技术标签:

【中文标题】控制器经常被调用,但仅限于 iOS 上的 Chrome【英文标题】:Controller get called often times, but only in Chrome on iOS 【发布时间】:2014-06-18 10:41:08 【问题描述】:

我正在使用 AngularJS 构建一个 Web 应用程序。

我正在使用 $routeProvider 浏览我的应用程序。现在,应用程序本身过于复杂,无法准确描述问题。我只是想知道是否有人在 ios 版 Chrome 上遇到了同样的问题:

    我通过创建我的 MainController “alert”。 在 Safari、Firefox、Opera、Chrome 桌面、Safari iOS...只发出一次警报,所以我的控制器只创建一次 当我在 iOS 版 Chrome 上打开应用程序时,我得到 10 到 20 个 alerts,因此控制器被创建了很多次

我的问题是:

有没有人对他们的应用有同样的体验?

这只是在黑暗中的一个镜头,但也许有人已经有过同样的经历,可以给我提示一下那里发生了什么。

编辑:当我在 Chrome(桌面)上模拟 iOS 时,网络应用程序也可以正常工作。它只是具有这些问题的 iPad 和 iPhone 版 Chrome。

App.config(function($routeProvider) 
$routeProvider
  .when(APP_CONFIG.init_url, 
    templateUrl: "views/site.html",
    controller: "InitCtrl"
  )
  .when(APP_CONFIG.main_url, 
    templateUrl: "views/site_2.html",
    controller: "MainCtrl"
  )
  .when(APP_CONFIG.another_url, 
    templateUrl: "views/site_3.html",
    controller: "AnotherCtrl"
  )
  .when(APP_CONFIG.andanother_url, 
    templateUrl: "views/site_4.html",
    controller: "AndAnotherCtrl"
  )
  .when("/thanks", 
    templateUrl: "views/site_5.html"
  )

  .otherwise(
    templateUrl: "404.html",
    controller: "NotFoundCtrl"
  );
  );

【问题讨论】:

你能不能至少给我们提供一下你的路线配置? 虽然 plunker 有一个不错的移动视图,也许你可以重新创建问题? @superpuccio 你怎么能说这是重复的?您的链接提出了一个问题,其中有人通过一个简单的链接触发了 routeProvider,然后创建了两次。 【参考方案1】:

对于未来的读者:

Chrome(仅限 iOS)不喜欢这个功能:

 $scope.$on('$routeChangeSuccess', function() 
  $location.hash(top_of_screen)
  $anchorScroll();
);

我删除了$location.hash(top_of_screen),现在 Chrome(iOS) 可以正常工作。

【讨论】:

以上是关于控制器经常被调用,但仅限于 iOS 上的 Chrome的主要内容,如果未能解决你的问题,请参考以下文章

将逗号转换为点和数字,但仅限于一定数量的变量

用于计算 iPhone 上方法调用次数的工具

从表中选择所有类型的实体,但仅限于派生实体的成员

Android 应用程序崩溃,但仅限于三星 Galaxy

MS Access 查询返回的记录不足,但仅限于某些约束

响应式文件管理器上传内存限制,但仅限于图像