Kendo UI angular DialogService - 更改标题栏背景颜色

时间:2017-07-12 18:40:19

标签: angular kendo-ui-angular2

我希望能够更改使用kendo UI angular的DialogService创建的结果对话框的背景颜色。

很容易调整对话框的内容,甚至可以通过scss覆盖背景颜色,但只需要一种固定的颜色,而我需要从少数人那里选择。

所以我想在运行时设置颜色或至少在包装器上设置一个类,这样我就可以通过scss设置它们。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我为此制定了一个解决方案。它有效,但它不优雅一点。

以下是演示代码的plunker链接: http://plnkr.co/edit/MGw4Wt95v9XHp9YAdoMt?p=preview

以下是服务中的相关代码:

const dialog: DialogRef = this.dialogService.open({
  actions: message.actions,
  content: MessageComponent,
  title:   message.title
});

const messageComponent = dialog.content.instance;
messageComponent.message = message;

//I get the dialog element and use jQuery to add classes to override styles.
//Let's say I had the error class as well.
const element = dialog.dialog.location.nativeElement;
$( element ).addClass( 'kendo-override ' + message.classes );

return dialog.result;

scss:

$error: #c13;
$success: #0c5;

.kendo-override {

  &.error {
    kendo-dialog-titlebar {
      background-color: $error;
    }
  }

  &.success {
    kendo-dialog-titlebar {
      background-color: $success;
    }
  }
}