【发布时间】:2015-11-18 11:33:34
【问题描述】:
我有一个 api 调用有点慢。
$http.jsonp(url, {
params: {
'client': 'translate_about',
'alpha': 1,
'hl': 'en'
}
})
.success(function (data) {
home.translate.list = data.sl;
//console.log(data.sl);
});
下一个块可以在home.translate.list 准备好之前或同时发生。因此,当home.translate.list 成功时,我需要另一个代码块来更新。
home.modalOn = function (val) {
//open modal
home.isModal = true;
//this if block must wait for home.translate.list to be ready.
if(typeof home.translate.list !== 'undefined'){
home.activePageSelection = home.translate.list[val];
//call wikipedia and get data
home.callWiki(home.translate.list[val]);
}
};
$scope.$watch(function () {
return location.hash
}, function (value) {
var currentRouteParam = value.split('/').slice(-1)[0];
if (currentRouteParam !== '') {
home.modalOn(currentRouteParam);
} else {
home.modalOff()
}
});
问题:
如何确保在执行 if 块之前定义了 home.translate.list?警告,不要把它放在$http.success 块中。
【问题讨论】:
-
你在哪里打电话给
home.modalOn? -
当哈希值改变时。当有人进行深度链接时,这可能会出现问题
-
添加了参考@AnikIslamAbhi
标签: javascript angularjs ajax promise