控制器经常被调用,但仅限于 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的主要内容,如果未能解决你的问题,请参考以下文章