typescript Bulma.io形式为aurelia和aurelia形式的渲染器。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript Bulma.io形式为aurelia和aurelia形式的渲染器。相关的知识,希望对你有一定的参考价值。

/**
 * Bulma.io form renderer for aurelia and aurelia form.
 *
 * Converted from "Bootstrap form renderer for aurelia and aurelia form."
 *
 * @export
 * @class BulmaFormRenderer
 */
export class BulmaFormRenderer {
  render(instruction) {
    for (let { result, elements } of instruction.unrender) {
      for (let element of elements) {
        this.remove(element, result);
      }
    }

    for (let { result, elements } of instruction.render) {
      for (let element of elements) {
        this.add(element, result);
      }
    }
  }

  /**
   * Add to error list
   *
   * @param {any} element
   * @param {any} error
   * @returns
   * @memberof BulmaFormRenderer
   */
  add(element, error) {
    if(!error.valid) {
      const formGroup = element.closest('.field');
      if (!formGroup || formGroup.classList.contains('help')) {
        return;
      }

      // add the has-error class to the enclosing form-group div
      formGroup.classList.add('has-error');
      element.classList.add('is-danger');

      // add help-block
      const message = document.createElement('p');
      message.className = 'help is-danger';
      message.textContent = error.message;
      message.id = `validation-message-${error.id}`;
      formGroup.appendChild(message);
    }
  }

  /**
   * Removes from error list
   *
   * @param {any} element
   * @param {any} error
   * @returns
   * @memberof BulmaFormRenderer
   */
  remove(element, error) {
    if (error) {
      const formGroup = element.closest('.field');
      if (!formGroup) {
        return;
      }

      element.classList.remove('is-danger');

      // remove help-block
      const message = formGroup.querySelector(`#validation-message-${error.id}`);
      if (message) {
        formGroup.removeChild(message);

        // remove the has-error class from the enclosing gield div
        if (formGroup.querySelectorAll('.help.validation-message').length === 0) {
          formGroup.classList.remove('is-danger');
        }
      }
    }
  }
}

以上是关于typescript Bulma.io形式为aurelia和aurelia形式的渲染器。的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试在 bulma css 上使用汉堡菜单,但它不起作用。怎么了?

如何使用 Bulma 更改网站的背景?

markdown bulma.io__templates__2and3-cols-with-footer-navbar-title-and-subtitle.md

Archlinux Setup AUR

Manjaro20.0添加国内源、社区源、AUR源

用于安装 aur 包的 python 脚本