【发布时间】:2016-03-02 04:24:09
【问题描述】:
我正在开发一个基于 ionic 和 angular 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 函数中不起作用
-
使用angular提供的
$timeout?