當HTML5模式不加載路由我有指定的幾條路線:AngularJS與路徑參數直接進入網址
app.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) {
$routeProvider.
when("/", {
templateUrl: "/ajax/home.html",
controller: "HomeController"
}).
when("/test/:id", {
templateUrl: "/ajax/test.html",
controller: "TestController",
resolve: {
data: function ($q, $http, $route) {
var deferred = $q.defer();
var params = $route.current.params;
$http({method: "GET", url: "/api/test/" + params.id + ".json"})
.success(function(data) {
deferred.resolve(data)
})
.error(function(data){
deferred.reject();
});
return deferred.promise;
}
}
});
$locationProvider.html5Mode(true);
}]);
當有在通往/test/x
另一條路線的鏈接,它工作正常。當不處於HTML5模式時,它也可以正常工作。但是,如果以HTML5模式直接導航至/test/x
,則路徑不會加載,並且不會執行解析中的任何內容。
我已經瀏覽了很多AngularJS文檔,仍然無法弄清楚這一點。 PLZ :(
編輯:我已經做了更多的測試,並且這隻適用於有斜線的路線,如果有參數(如:id
),它似乎並不重要。訪問/hello
(如果定義了該路線)適用於HTML5和非HTML5模式的所有情況。類似/hello/world
的東西總是以非HTML5模式工作,並且在通過點擊從其他路線更改路線時以HTML5模式工作鏈接刷新/hello/world
時,轉到地址欄並按回車或點擊指向另一個網站的鏈接會導致它重新加載索引頁但不是實際的路徑
你能解決這個問題嗎?我在這裏有完全相同的問題。 – destan
它是1.1.5中的一個[bug](https://github.com/angular/angular.js/issues/2799)。將 添加到
– tyscorp@ user27766這對我來說非常合適,謝謝!請將此作爲對此問題的回答,並將其標記爲答案。 – fsommar