我試圖通過運行ajax調用並在我的RouteProvidor上設置路由來將路由加載到我的angularJS應用中。以下是我的代碼。從api加載的路由 - 控制器從未調用
var app = angular.module('app', ['ngRoute']);
var appRouteProvider;
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
appRouteProvider = $routeProvider;
appRouteProvider.when('/', {
templateUrl : '../../app/templates/home.html',
controller : 'IndexController'
});
}]).run(function($http, $route){
url = siteApiRoot+'api/routes';
$http.post(url, jQuery.param([]), {
method: "POST",
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
}
).success(function(data){
for(i in data){
appRouteProvider.when(data[i].route, {
templateUrl : data[i].template,
controller : data[i].controller
});
}
console.log($route.routes);
});
});
console.log輸出一組正確的路由到控制檯,似乎表明路由已被正確分配。但是如果我打開任何應該由路由處理的url。什麼都沒發生。永遠不會調用基本資產負載,即導航欄和頁腳,它們始終保持不變,但路由控制器始終不變。我在這裏想念什麼人。
- UPDATE
Tehcnically我有遵循下列模式路線:
條目列表:
我不知道如何來定義上面 - 基本前兩條路線將調用一個控制器和一個視圖,而第三個路徑調用另一個。然而,我堅持如何在AngularJS中定義這種路由,前提是數據庫中的所有數據都是slu slu聲。硬編碼一些路線,但這似乎也無法正常工作。
另外我還有其他頁面是靜態的 - 例如/ about/site/contact - 在這裏路由時有點丟失。
你的問題是,有角已經加載了所有的路線。你可能需要重新加載routeService,但爲什麼你甚至不得不通過ajax獲取你的路由?這聽起來像我的設計不好。 – Xatenev