使用 ng-route 处理 hashbang url
handling hashbang url with 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>"
});
});
但不是像
那样生成 url
http://localhost:8001/#/foo
location.path遍历到
http://localhost:8001/#/%23/foo
因此 routeprovider 正在加载模板,而不是所需的模板不会加载。我如何检查
从 $location.path('#/foo');
中的路线中删除明确的 #
并将其更改为 $location.path('/foo');
因为 angular 本身在路由期间附加 # tag
,这已经在你的问题 http://localhost:8001/#/%23/foo
中看到,当你给出明确的一个时,它会编码为 %23
只需删除您在 $location.path() 中输入的#。默认情况下已经添加。
$location.path('/foo');
我正在使用 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>"
});
});
但不是像
那样生成 urlhttp://localhost:8001/#/foo
location.path遍历到
http://localhost:8001/#/%23/foo
因此 routeprovider 正在加载模板,而不是所需的模板不会加载。我如何检查
从 $location.path('#/foo');
中的路线中删除明确的 #
并将其更改为 $location.path('/foo');
因为 angular 本身在路由期间附加 # tag
,这已经在你的问题 http://localhost:8001/#/%23/foo
中看到,当你给出明确的一个时,它会编码为 %23
只需删除您在 $location.path() 中输入的#。默认情况下已经添加。
$location.path('/foo');