Độ dốc lên trên góc và ui-router
Và phải vật lộn với chuyển hướng đến một trạng thái khác nhau nếu một điều kiện tiên quyết không được đáp ứng:
tôi đã cố gắng sử dụng một kẻ đánh chặn: (How do I preform a redirect in an angular interceptor).
Nhưng ai đó đã đề cập rằng việc xử lý $ stateChangeState sẽ phù hợp hơn. Nhưng tôi vẫn đang chạy vào một vòng lặp vô hạn:
/**
* Check here for preconditions of state transitions
*/
$rootScope.$on('$stateChangeStart', function(event, toState) {
// which states in accounts to be selected
var accountRequiredStates = ['user.list', 'user.new'];
if(_.contains(accountRequiredStates, toState.name)){
event.preventDefault();
ApiAccount.customGET('get_current').then(function(resp){
// if I have a selected account, go about your business
if(resp.hasOwnProperty('id')){
$state.go(toState.name);
} else { // prompt user to select account
$state.go('user.select_account');
}
})
}
});
bất cứ ai có thể đề xuất một mô hình tốt hơn (một trong những hoạt)
Cảm ơn!
Lưu ý: Tương tự như vấn đề tiếp cận khác ở đây: How do I preform a redirect in an angular interceptor
bạn chỉ nên ngăn sự kiện nếu bạn muốn chuyển hướng. Tôi đoán '$ state.go' phải được đưa vào hàm' $ timeout'. – zeroflagL
cảm ơn - bạn có thể chia sẻ mã snipit không? – Jonathan
Tôi nghĩ câu hỏi của bạn là duplciate với http://stackoverflow.com/questions/21631896/why-does-this-angular-ui-router-code-cause-an-infinite-loop-in-digest – linkary