我想在我的run()中獲取當前狀態名稱。我正在使用$ state.current.name。但它返回空字符串。如何使用angularjs獲取當前狀態名稱
$rootScope.$on('$stateChangeStart', function (event, next) {
var json = (function() {
event.preventDefault();
$.ajax({
'async': false,
'global': false,
'url':'users/testLogin',
//'data': 'action=showOrders',
'dataType': "json",
'success': function (data) {
if(data.success){
$rootScope.authenticated = true;
$rootScope.id = data.data.id;
$rootScope.unique_id = data.data.unique_id;
$rootScope.print_house_id = data.data.print_house_id;
$rootScope.name = data.data.name;
$rootScope.email = data.data.email;
$rootScope.type = data.data.type;
} else {
console.log($state.current.name);
}
}
});
})();
});
任何人都可以找出我的錯誤在哪裏。
的可能重複:http://stackoverflow.com/questions/23590799/ui-router-get-state-name-from-object-function – varit05
首先,你應該使用有棱角的'$ http'而不是jquery'$ .ajax'在這裏;其次,它看起來並不像你在這個方法中注入'$ state'。另外,像這樣使用'$ rootScope'是一種反模式。 – Claies