我有一個角度的服務包含Ajax調用做一個函數如下:
function performCall($scope){
$scope.dataFail = false;
var promise = doAjaxCall();
promise.then(function(data){
if(data.rootElement){
//process...
}else{
$scope.dataFail=true;
}
}
}
而且在我的控制器看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
註冊。有人有任何建議嗎?
您在事件中有額外空間。 ''dataFail''<===好,猜到了。 – 2013-02-25 16:31:31
不幸的是在這種情況下不相關,因爲這個問題在原始代碼中不存在。這僅僅是代碼的概要。在例子中修改。 – noiselesslark 2013-02-25 16:34:07