使用ng-route处理hashbang url

时间:2017-05-19 09:59:23

标签: angularjs angularjs-ng-route

我使用location.path进行导航,如

$location.path('#/foo');

在应用程序中我使用路由提供程序,如

var app = angular.module("myApp", ['ngRoute'])
    .config(function($routeProvider){
    $routeProvider
    .when("/foo",{
        templateUrl: "templates/foo.html",
        controller: "fooController"
    })
    .otherwise({
    template : "<h1>None</h1><p>Nothing has been selected</p>"
    });
   });

但不是像

那样生成网址
http://localhost:8001/#/foo

location.path遍历

http://localhost:8001/#/%23/foo

因此routeprovider正在加载否则模板而不加载所需的模板。我怎么检查

2 个答案:

答案 0 :(得分:1)

#中的路线中删除明确的$location.path('#/foo'); 并将其更改为$location.path('/foo');

因为角度本身会在路线中附加# tag,这已经在您的问题http://localhost:8001/#/%23/foo中看到了,当您提供明确的一个时,它会编码为%23

答案 1 :(得分:1)

摆脱你放在$ location.path()中的#。它已经默认添加。

php-cgi -b 127.0.0.1:9000