【问题标题】:How to change text colour in Aurelia Dialog?如何在 Aurelia 对话框中更改文本颜色?
【发布时间】:2017-12-27 03:03:18
【问题描述】:

我有一个对话框,你可以在这里看到:

<template>
  <ux-dialog>
    <ux-dialog-body>
      <h2 t="luminaires.list.enter-serialnumber">Bitte geben Sie eine neue Seriennummer ein</h2>
      <input value.bind="serialNumber" />
    </ux-dialog-body>

    <ux-dialog-footer>
      <button click.trigger="controller.cancel()" t="luminaires.list.cancel">Abbrechen</button>
      <button click.trigger="controller.ok(serialNumber)" t="luminaires.list.ok">Ok</button>
    </ux-dialog-footer>
  </ux-dialog>
</template>

和相关的视图模型:

import {DialogController} from "aurelia-dialog";
import {Controller} from "aurelia-templating";

export class SerialnumberDialog {
  private static inject = [DialogController];
  private serialNumber: string;
  private controller: any;
  constructor(controller: Controller) {
    this.controller = controller;
  }
}

我有时想改变下面句子的颜色。

<h2 t="luminaires.list.enter-serialnumber">Bitte geben Sie eine neue Seriennummer ein</h2>

例如,当某些机构给出重复的序列号时,我想将颜色更改为红色。我可以通过以下代码打开对话框:

this.dialogService.open({ viewModel: SerialnumberDialog, lock: false })
      .whenClosed((response) => {......

我想为此目的使用 Aurelia 概念。你能告诉我解决办法吗?

【问题讨论】:

    标签: aurelia aurelia-dialog


    【解决方案1】:

    我会在&lt;h2&gt; 元素上使用css.bind 方法。我会在您的视图模型上创建一个方法,以便能够决定您是否希望文本为红色,然后将样式存储在 css 变量中。

    import {DialogController} from "aurelia-dialog";
    import {Controller} from "aurelia-templating";
    
    export class SerialnumberDialog {
      private static inject = [DialogController];
      private serialNumber: string;
      private controller: any;
    
    
      constructor(controller: Controller) {
        this.controller = controller;
        this.myCss = {
          color: 'black'
        };
      }
    
      activate(){
        if(//serial number is repetitious){
          this.myCss.color = red;
        }
      }
    }
    

    现在您有一个 myCss 对象,可以将其绑定到您的视图以更改文本的颜色。

    <h2 t="luminaires.list.enter-serialnumber" css.bind="myCss">
      Bitte geben Sie eine neue Seriennummer ein
    </h2>
    

    如果您想了解更多信息,Dwayne Charrington 在他的 ILikeKillNerds 博客 https://ilikekillnerds.com/2016/02/binding-with-style-in-aurelia/ 上写了一篇关于 css 绑定的精彩文章。

    【讨论】:

    • 完美。非常感谢。
    • 亚历克·布坎南的英式扣篮!
    • 要将样式与代码分开,也许使用class 会更好(我用TypeScript 做到了):标记中的&lt;h2 class="permanent-class ${conditionalClass}"&gt;...&lt;/h2&gt;。还有activate(){ if(//serial number is repetitious){ conditionaClass = "my-red"; } },其中conditionalClass 在VM 中默认为空字符串。
    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 2018-04-18
    • 2021-06-26
    • 1970-01-01
    • 2016-12-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多