html5模式下的角度重写网址

时间:2016-04-19 01:21:57

标签: angularjs html5 google-chrome-extension url-rewriting

现在我在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 有什么建议来解决这个问题吗?

0 个答案:

没有答案