$cordovaDialogs
本身有以下承诺:
$cordovaDialog.alert('message', 'title', 'OK').then(function() {
$state.go('app.nextPage');
});
如果我直接使用它,它的工作完全正常,但现在我试图将它封装到一个函数中,如下所示:
app.factory('AppCommon', function ($cordovaDialogs) {
var alert = function(message, title, confirmButton) {
$cordovaDialogs.alert(message, title, confirmButton)
}
return {
alert: alert
}
});
现在我试图以这种方式使用它,但它失败了。如果确认警报框,我该怎么办才能使$state.go
执行?
AppCommon.alert('message', 'title', 'OK').then(function() {
$state.go('app.nextPage');
});
答案 0 :(得分:1)
只需从.then
函数返回您尝试alert()
的承诺。由于$cordovaDialogs.alert()
返回一个promise,您需要返回它。
app.factory('AppCommon', function ($cordovaDialogs) {
var alert = function(message, title, confirmButton) {
return $cordovaDialogs.alert(message, title, confirmButton)
}
return {
alert: alert
}
});