我正在尝试在我的服务中使用$ ionicPopup。实际上,当我在控制器中使用时,它正确运行。请点击按钮并检查 这里是plunker http://plnkr.co/edit/wIss45ijr0DfvUVB1GPG?p=preview
但是当我在工厂使用它时会出错。请在控制台中检查错误。
错误:超出最大调用堆栈大小
http://plnkr.co/edit/l3rvPB7AZV1WIRbMEnXd?p=preview
ap.factory('utlity', ['$ionicPopup',function($ionicPopup) {
function showOtcresult(message){
var alertPopup = $ionicPopup.alert({
title: 'Alert',
template: message.toString()
});
alertPopup.then(function(res) {
console.log('Thank you for not eating my delicious ice cream cone');
});
}
return {
showOtcAlert:function showOtcresult(message){
showOtcresult(message)
}
}
}]);
答案 0 :(得分:3)
函数声明中不需要名称,因为它将通过调用属性键showOtcAlert
来执行,因此您需要这样做:
return {
showOtcAlert:function (message){
showOtcresult(message)
}
}
答案 1 :(得分:0)
这里的问题是导致循环调用的两个函数的相同名称
showOtcresult
return {
showOtcAlert: function whateverNameForDebug(message) {
showOtcresult(message)
}
}