我正在嘗試創建一個帶角度的刪除服務。如何使一個然後功能的工作?
這裏是我的控制器:
app.controller('VoirMessagesController', function($scope, $rootScope, $routeParams, $location,$translate, userService, dataRefreshServices){
$scope.messageToWatch = dataRefreshServices.getMessageToWatch();
this.DeleteAMessage = function(){
dataRefreshServices.SupprimerMessage($scope.messageToWatch).then(function(){
$location.path('/messages'); // The problem is here
});
};
});
和調用的服務:
$this.SupprimerMessage = function(message){
var retour = true;
if(message != undefined)
{
$translate(['MESSAGES_MESSAGERIE_SUPPRIMER', 'BUTTON_CANCEL', 'MESSAGES_MESSAGERIE_MESSAGE_VALIDATION_SUPPRESSION_TEXTE', 'MESSAGES_MESSAGERIE_MESSAGE_VALIDATION_SUPPRESSION_TITRE']).then(function(translations)
{
var modalOptions = {
closeButtonText: translations.BUTTON_CANCEL,
actionButtonText: translations.MESSAGES_MESSAGERIE_SUPPRIMER,
headerText: translations.MESSAGES_MESSAGERIE_MESSAGE_VALIDATION_SUPPRESSION_TITRE,
bodyText: translations.MESSAGES_MESSAGERIE_MESSAGE_VALIDATION_SUPPRESSION_TEXTE
};
// displaying the modal box
modalYesNoService.showModal({}, modalOptions).then(function (result) {
var index = _.indexOf(listeMessages, _.find(listeMessages, function (_message) { return _message._id == message._id; }));
$this.SupprimerMessageFromServer(message).then(function(promise){
listeMessages[index]._id = 0;
});
});
});
}
return retour;
};
我得到的錯誤:
undefined is not a function
at DeleteAMessage
據我所知,我的函數不返回任何承諾,但我不知道如何使這項工作,我只想要我的$ location.path的重定向只有在用戶在我的模態窗口中點擊了yes。
我想在做重定向之前添加一個「then」來等待用戶的回答。
看起來我應該創造一個承諾,但不能確定如何「創造」承諾。當我使用$ http.get時,我瞭解承諾的內容,但在這裏我不能(在沒有預期數據之前,我只想知道用戶何時點擊了是)。
謝謝
不錯的解決方案謝謝你! – user2088807