我正在研究一個基於離子和角js的項目。我正在加載包含鍵值對中的一些JSON數據的JSON文件。我想要實現的是在json文件完全加載後,我必須調用$ urlRouterProvider.otherwise()方法。以下是我嘗試過的代碼,但它不適用於我。我試圖把控制檯放在'defaultRoute'函數中,但是'$ urlRouterProvider.otherwise'('/ tab/myjobs')'這行不起作用。下面的代碼在app.config函數中存在。任何幫助將不勝感激。
$.getJSON('js/constants/'+lang+'.json')
.then(function(response) {
$translateProvider.translations(window.localStorage['deviceLanguage'],response);
defaultRoute($urlRouterProvider);
}, function(response) {
//$translate.use('en');
});
function defaultRoute($urlRouterProvider){
if(window.localStorage['userData']) {
var access_token = JSON.parse(window.localStorage['userData']).access_token;
if(access_token){
$urlRouterProvider.otherwise('/tab/myjobs');
}else{
$urlRouterProvider.otherwise('/login');
}
}else{
console.log("in line 282");
$urlRouterProvider.otherwise('/login');
}
}
我不確定這是否可行,但您可以做的是在getJSON代碼周圍添加一個超時,以確保它首先運行。 –
$ urlRouterProvider.otherwise無法在setTimeout函數 –
中使用角度提供的'$ timeout'嗎? –