我正在使用带有Laravel 4后端的AngularJS应用程序。我最近不得不在$ locationProvider服务中从html5切换到hashbang模式以支持IE。该应用程序可以正常工作,但在所有浏览器中的hashbang之后,URL路径会重复。
实施例。 - http://domain.com/resources/resource显示为http://domain.com/resources/resource#!/resources/resource
我在下面列出了我的主要模块。任何帮助将不胜感激。
angular.module('agent', ['agent.controllers', 'agent.directives', 'ngRoute']).
config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
//
$locationProvider.hashPrefix('!');
$routeProvider
.when('/resources/resource', {
template: templatePath,
controller: 'ResourcessController'
})
.otherwise({redirectTo: '/resources/resource'});
}]);
答案 0 :(得分:1)
我已经多次看过这个问题了。我作为解决办法找到的唯一一件事就是直接转到角度页面。以下面的例子为例:
http://example.com/product/1234#/1234
如果这来自另一个页面,您可以直接链接到哈希链接:
http://example.com/product#/1234
现在URL不会重复,例程仍然按预期工作。基本上,这里的重点是根据服务器/控制器页面与客户端/角度页面进行路由。我不确定这真的是最好的答案,因为我还在学习角度。希望其他人也有很好的建议!