網址更新我,用ui.router和我有層次結構中的下一個狀態發行採用ui.router
$stateProvider
.state('admin', {
abstract: true,
url: '',
templateUrl: baseUrl + "app/views/_MainLayout.html",
})
.state('admin.null', {
url: '',
})
.state('admin.edit-customer', {
url: "/Account",
views: {
"edit-info": {
controller: "CustomerEditController",
templateUrl: baseUrl + "app/Views/EditCustomer.html"
}
}
})
.state('admin.add-customer', {
url: "",
views: {
"edit-info": {
controller: "CustomerAddController",
templateUrl: baseUrl + "app/Views/AddCustomer.html"
}
}
})
.state('admin.add-student', {
url: "",
views: {
"edit-info": {
controller: "StudentAddController",
templateUrl: baseUrl + "app/Views/AddStudent.html"
}
}
})
.state('admin.edit-student', {
url: "",
views: {
"edit-info": {
controller: "StudentEditController",
templateUrl: baseUrl + "app/Views/EditStudent.html"
}
}
})
.state('admin.teacher-tool', {
url: "/TeachingTool",
views: {
"edit-info": {
controller: "TeacherAssignmentsController",
templateUrl: baseUrl + "app/Views/TeacherAssignments.html"
}
}
})
.state('order', {
url: "/order",
templateUrl: baseUrl + "app/views/OrderMain.html",
controller: 'OrderController'
});
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/Account');
}])
所以,當我的帳戶和TeachingTool一切之間的切換與工作正常,網址更新爲它應該,但是當我在賬戶和訂單或TeachingTool和訂單之間切換時,只有在第二次切換到此狀態後纔會更改。
我debuged和figgured指出,URL路徑改變正常,我還以爲網址不被消化週期期間更新的,我已經試過了,在orderController
的開頭 $timeout(function() {
$location.absUrl(baseUrl + $state.current.url);
$location.path($state.current.url);
}, 200);
它確實幫助,但並不總是,有時url會在第一時間更新,但有時不會。請告訴我,如果我錯了,並幫我找到答案
但是,這裏的答案非常簡單和容易 - 只是使用url定義。不要使用空的網址。所有將開始按預期工作 –
我有國家與網址,但不是全部,在一些國家即時編輯只有特定的看法,我不需要更改網址,所以一些國家有空的網址。爲什麼這是一個問題? –