Aurelia `@ dynamicOptions` смешивается с` @ bindable`s - PullRequest
0 голосов
/ 05 января 2019

Я развиваюсь, используя aureliajs. В настоящее время я работаю над пользовательским атрибутом, который помечен, чтобы иметь динамические параметры. Например, рассмотрим следующий код:

  import {dynamicOptions, inject} from 'aurelia-framework';

  @dynamicOptions
  @inject(Element)
  export class SquareCustomAttribute {
    constructor(element){
      this.element = element;
    }

    propertyChanged(name, newValue, oldValue){
      switch(name){
        case 'fill':
          this.element.style.backgroundColor = newValue;
          break;
        case 'size':
          this.element.style.width = this.element.style.height = `${newValue}px`;
          break;
        default:
          this.element.style[name] = newValue;
          break;
      }
    }
  }

теперь, например, рассмотрим, что я хочу дать свойству fill defaultBindingMode of twoWay, поэтому я попытаюсь добавить свойство @bindable в класс. Так что код изменится на это:

  import {dynamicOptions, inject} from 'aurelia-framework';

  @dynamicOptions
  @inject(Element)
  export class SquareCustomAttribute {
    @bindable fill;

    constructor(element){
      this.element = element;
    }

    propertyChanged(name, newValue, oldValue){
      switch(name){
        case 'fill':
          this.element.style.backgroundColor = newValue;
          break;
        case 'size':
          this.element.style.width = this.element.style.height = `${newValue}px`;
          break;
        default:
          this.element.style[name] = newValue;
          break;
      }
    }
  }

И переплет перестает работать.

  1. Итак, первый вопрос: как установить defaultBindingMode для dynamicOptions?

  2. И еще один маленький вопрос. Как говорит aurelia.io , Binding to a dynamic options attribute works exactly the same as binding to an options attribute in the DOM.. В соответствии с этим предложением я ожидаю связать разделенные тире динамические параметры и извлечь случай верблюда для метода optionsChanged. Но черта отделяет опции, связанные из поля зрения, получает черту и верблюдов, верблюдов. Это правильно в соответствии с предложением из aurelia.io ?

1 Ответ

0 голосов
/ 28 июля 2019

Благодаря @bigopon эта проблема рассматривается в этой проблеме , и я думаю, что любые дополнительные комментарии по этому поводу будут полезны до внесения изменений в aurelia-framework.

...