次のことを行う ajax 呼び出しを含む角度サービスに関数があります。
function performCall($scope){
$scope.dataFail = false;
var promise = doAjaxCall();
promise.then(function(data){
if(data.rootElement){
//process...
}else{
$scope.dataFail=true;
}
}
}
そして、コントローラーの $watch 式が dataFail を監視し、ダイアログが確認されたときに performCall を呼び出すオプションを含むダイアログを表示します。
$scope.$watch('dataFail', function(dataFail){
if(dataFail){
//open dialog
$( "#ajaxFailurePopup" ).dialog({
zIndex: 3003,
title: "Note:",
modal:true, // Disable controls on parent page
buttons: {
Ok: {
text: 'Retry >',
"class" : 'ppButton floatRight',
click:
function() {
service.performCall($scope);
$("#ajaxFailurePopup").remove();
}
}
}
});
};
});
これは、ajax 呼び出しが最初に失敗したときの初期化で正常に機能します。ただし、この後、 に加えられた変更はdataFail
によって登録されません$watch
。誰か提案はありますか?