如何将Bootbox弹框的确认/取消按钮替换为是/否选项?
核心问题说明
你当前封装的confirmClaimMessage函数中使用的是bootbox.confirm的最简传参模式,仅支持传入提示文本和回调函数,无法识别自定义按钮配置,因此你写的目标配置一直没有生效。
调整方案
方案1:保留现有封装(适合多处复用confirm弹框的场景)
第一步修改confirmClaimMessage函数定义,将其改为对象传参模式,支持传入自定义按钮文本:
function confirmClaimMessage(text, confirmText, cancelText, callback) { bootbox.confirm({ message: text, buttons: { confirm: { label: confirmText }, cancel: { label: cancelText } }, callback: function (result) { callback(result); } }); }
第二步修改函数调用逻辑,传入你对应的资源字段:
$scope.saveForLaterClick = function (e) { confirmClaimMessage( $scope.ResourceData.RenewalProductAreYouSureWantToContinueText, $scope.ResourceData.PoppupYesText, $scope.ResourceData.PoppupNoText, function (e) { if (e) { window.open("#/Renewal", "_self"); } } ); }
方案2:直接替换原有逻辑(不需要复用confirmClaimMessage的场景)
直接把$scope.saveForLaterClick的原有调用替换为你期望的实现写法即可,不需要走原有封装:
$scope.saveForLaterClick = function (e) { bootbox.confirm({ message: $scope.ResourceData.RenewalProductAreYouSureWantToContinueText, buttons: { confirm: { label: $scope.ResourceData.PoppupYesText }, cancel: { label: $scope.ResourceData.PoppupNoText } }, callback: function (e) { if (e) { window.open("#/Renewal", "_self"); } } }); }
注意事项
以上写法仅适用于Bootbox 4.0及以上版本,如果你使用的是更早的版本,需要先升级Bootbox到兼容版本再调整。
内容的提问来源于stack exchange,提问作者Abhishek
相关产品推荐
相关产品推荐

