AngularJS hashbang模式复制URL路径

时间:2013-12-04 15:54:05

标签: javascript php angularjs laravel

我正在使用带有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'});
    }]);

1 个答案:

答案 0 :(得分:1)

我已经多次看过这个问题了。我作为解决办法找到的唯一一件事就是直接转到角度页面。以下面的例子为例:

http://example.com/product/1234#/1234

如果这来自另一个页面,您可以直接链接到哈希链接:

http://example.com/product#/1234

现在URL不会重复,例程仍然按预期工作。基本上,这里的重点是根据服务器/控制器页面与客户端/角度页面进行路由。我不确定这真的是最好的答案,因为我还在学习角度。希望其他人也有很好的建议!