2016-06-03 10 views
0

$cordovaDialogs selbst hat ein Versprechen wie folgt:

$cordovaDialog.alert('message', 'title', 'OK').then(function() { 
    $state.go('app.nextPage'); 
}); 

Es arbeitet völlig in Ordnung, wenn ich direkt verwenden, aber jetzt versuche ich, es in eine Funktion wie folgt zu kapseln:

app.factory('AppCommon', function ($cordovaDialogs) { 

    var alert = function(message, title, confirmButton) { 
     $cordovaDialogs.alert(message, title, confirmButton) 
    } 

    return { 
     alert: alert 
    } 
}); 

Jetzt versuche ich es auf diese Weise zu verwenden, aber es schlägt fehl. Was kann ich tun, damit $state.go nur ausgeführt wird, wenn die Alarmbox bestätigt wird?

AppCommon.alert('message', 'title', 'OK').then(function() { 
    $state.go('app.nextPage'); 
}); 

Antwort

1

Rückkehr einfach das Versprechen Sie versuchen, auf zu tun .then von alert() Funktion. Da $cordovaDialogs.alert() ein Versprechen zurückgibt, müssen Sie es zurückgeben.

app.factory('AppCommon', function ($cordovaDialogs) { 

    var alert = function(message, title, confirmButton) { 
    return $cordovaDialogs.alert(message, title, confirmButton) 
    } 

    return { 
    alert: alert 
    } 
});