我正在使用angular-confirm在我的应用中的很多地方显示确认消息。例如:
$confirm({
text: 'content',
title: 'title text',
ok: 'Yes',
cancel: 'No'})
.then(function() {
doSomething();
});
我想全局更改这些对话框在应用中显示的布局。我知道angular-confirm允许你做出这样的全局变化:
$confirmModalDefaults.templateUrl = 'path/to/your/template';
但是,这也会覆盖所有$ modal.open()调用的模板,这不是我想要的。
我认为这样做的方法是使用提供商将模板网址附加到应用中的每个$ confirm调用,但我不确定该怎么做。
如何为$ confirm创建提供程序并为每次调用添加templateUrl参数?
答案 0 :(得分:0)
想出来:
function config($provide) {
$provide.decorator('$confirm', confirmProvider);
}
/* @ngInject */
function confirmProvider($delegate) {
return function (data, settings) {
if (settings && !settings.template && !settings.templateUrl) {
settings.template = '<div>my confirm content</div>';
} else {
settings = {
template: '<div>my confirm content</div>'
}
}
return $delegate(data, settings);
};
现在,当使用数据和/或设置调用$ confirm()时,它将应用我的自定义模板,除非调用者指定了