我有一个函数$ scope.save()。这里调用另一个函数$ scope.validateFormat()只是为了验证一些值在验证函数内部进行一次Api调用并检查结果,如果值有效则返回并允许保存以保存我的值。如果无效,则将值setvalidity设置为false并抛出错误。 我的疑问是,当我在完成此功能之前尝试调用validateFormat()时,保存功能正在完成。
$scope.save() = function(){
// some code
$scope.validateFormat();// calling the validate function
// codde for saving value
}
$scope.validateFormat(){
// some API to get result
if(success){
// some code
}
else{
$scope.filestatus.editFileField.$setValidity("fileField", false);
return false;
}
}
答案 0 :(得分:4)
正如我在评论中提到的,这是一个使用回调的例子:
$scope.save = function(){
// some code
$scope.validateFormat(function (data) {
if(!data.err) {
// code for saving value
}
});
}
$scope.validateFormat = function(callback){
// some API to get result
$http.get('/something').then(function (success, error) {
if(success){
// some code
callback({err: false});
}
else{
$scope.filestatus.editFileField.$setValidity('fileField', false);
callback({err: true});
}
});
}
您应该根据自己的需要进行调整。
有关javascript中回调的详细信息,请查看此answer。
答案 1 :(得分:2)
我认为您应该使用 $ q 服务在此处创建承诺。
request.params.phoneVerificationCode