【发布时间】:2018-02-11 03:46:55
【问题描述】:
我的控制器中有一个函数,该函数从需要布尔响应的第三方库调用。该函数打开一个模式(定义为服务)以获取用户的响应并将其作为承诺返回。但是,当在模式上按下关闭时,我在控制台中收到错误
可能未处理的拒绝:取消
我花了几个小时试图用各种方法解决这个问题,但在返回真/假时无法消除错误。有人可以帮忙吗?
服务
angular.module('app')
.service("ModalService", function ($uibModal) {
var modalDefaults = {
backdrop: true,
keyboard: true,
modalFade: true,
templateUrl: '/app/components/shared/modal.html'
};
var modalOptions = {
closeButtonText: 'No',
actionButtonText: 'Yes',
headerText: 'Title',
bodyText: 'Are you sure you wish to do this?'
};
this.showModal = function (customModalDefaults, customModalOptions) {
if (!customModalDefaults) {
customModalDefaults = {};
}
customModalDefaults.backdrop = 'static';
return this.show(customModalDefaults, customModalOptions);
};
this.show = function (customModalDefaults, customModalOptions) {
// Create temp objects to work with since we're in a singleton service
var tempModalDefaults = {};
var tempModalOptions = {};
// Map angular-ui modal custom defaults to modal defaults defined in service
angular.extend(tempModalDefaults, modalDefaults, customModalDefaults);
// Map modal.html $scope custom properties to defaults defined in service
angular.extend(tempModalOptions, modalOptions, customModalOptions);
if (!tempModalDefaults.controller) {
tempModalDefaults.controller = function ($scope, $uibModalInstance) {
$scope.modalOptions = tempModalOptions;
$scope.modalOptions.ok = function (result) {
$uibModalInstance.close(true);
};
$scope.modalOptions.close = function (result) {
$uibModalInstance.dismiss('cancel');
};
}
}
return $uibModal.open(tempModalDefaults).result;
};
});
控制器功能
this.onRemovingLabel = function($tag) {
var modalOptions = {
closeButtonText: 'Cancel',
actionButtonText: 'Delete',
headerText: 'Delete Label: ' + $tag.name,
bodyText: 'By removing this label all marked tags in the the dataset will be deleted. Do you wish to continue?'
};
return ModalService.showModal({}, modalOptions);
}
从 HTML 调用函数
<tags-input ... on-tag-removing="tc.onRemovingLabel($tag)">
【问题讨论】:
标签: angularjs