2015-09-17 45 views
1

我已经发布了一个网站,使用mvc c#与角度和AJAX调用来创建一些客户端页面。我的一个环节是这样的:使用角度从哈希重定向到哈希邦

www.website.com/App#/Index 

我试图建立一个hasbang解决方案,使我的网站抓取。我成功地创建了hashbang设定所以现在工作的链接将是这样的:

www.website.com/App#!/Index 

现在的问题是,我所有的环节出在Facebook等不包含爆炸,因此这些链接是(!)死。 如何从没有hashbang的第一个链接重定向到带有hashbang的链接?

我当前的路由:

app.config(['$routeProvider', '$locationProvider', 
function ($routeProvider, $locationProvider) { 
    $locationProvider.html5Mode(false).hashPrefix('!'); 
    $routeProvider 
     .when('/Index', { 
      templateUrl: '/Apps/Modules/IndexPublicAngular/Index.html', controller: 'IndexPublicController' 
     }); 
}]); 
+0

它甚至有可能吗? –

回答

1

我打你了,我需要使用,而不是仅仅哈希hashbang类似的问题。 我不得不想出这个快速而肮脏的解决方案:

$rootScope.$watch(function() { 
    return window.location.hash; 
}, function (value) { 
    if (value.indexOf('#!#') == 0) { 
     setTimeout(function() { 
     window.location.hash = value.replace('#!#','#!'); 
     }) 
    } 
}); 

有可能是一个更好的解决方案在那里,但我没有调查非常深刻,因为这是只为书签的网址等的临时补丁。请记住,因为这只在angular已经触及url之后触发,'#'已经通过角度转换为'#!#'。