现在我在gmail中编写chrome扩展名,我们的扩展使用UI-router进行更改视图,它将URL从xxx / #inbox更改为xxx /#/ inbox,这将阻止其他扩展功能(Streak) )而客户希望在同一时间使用。所以我们启用html5模式,并重写url以使其工作。这是重写部分:
app.config(function($provide,$locationProvider,....){
$provide.decorator('$browser', function($delegate) {
var superUrl = $delegate.url;
$delegate.url = function(url, replace) {
if(url !== undefined) {
return superUrl(url.replace(/\%2F/g,"/"), replace);
} else {
return superUrl().replace(/\//, "%2F");
}
}
return $delegate;
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false,
rewriteLinks: true
});
......
})
它适用于我们的部分扩展,但是当我点击Streak功能时,它会导致错误
lib.js:17317未捕获错误:[$ rootScope:infdig] [http://errors.angularjs.org/1.5.3/ $ rootScope / infdig?p0 = 10& p1 =%5B%5D] error-link
喜欢Infinite $ digest Loop 有什么建议来解决这个问题吗?