Изменить значение поля набора изменений с пользовательским элементом ember- bootstrap - PullRequest
2 голосов
/ 23 января 2020

Я на Ember 3.15 (Октан). При следующей настройке

шаблон

<MyComponent
  @changeset={{changeset this.model this.MyValidationClass}}
  @onSubmit={{this.save}}
/>

компонент

<BsForm {{on 'submit' (fn this.submit @changeset)}}
  @model={{@changeset}}
  @formLayout="horizontal"
  as |form|>

  <form.element
    @label="My Custom Field"
    @property="myField" as |el|>

    <BsButtonGroup
      @value="{{el.value}}"
      @type="radio"
      @onChange="{{action (changeset-set @changeset 'myField') 'target.value'}}" 
      as |bg|>

      {{#each @changeset.options as |option|}}      // options is a string array ['first', 'second', 'third']
        <bg.button
          @type="info"
          @value="{{option}}">
          {{option}}
        </bg.button>
      {{/each}}

    </BsButtonGroup>
  </form.element>
</BsForm>

Проблема, с которой я сталкиваюсь, заключается в том, что changeset-set не меняет значение myField когда я меняю выбор переключателя. Я пробовал

@onChange="{{action (mut el.value)}}

и

@onChange="{{action (changeset-set @changeset 'episodeType') this.target.value}}"

и

@onChange="{{action (changeset-set @changeset 'episodeType') this.buttonGroupValue}}"

1 Ответ

1 голос
/ 24 января 2020

Как уже упоминалось в комментарии, в вашем фрагменте есть некорректный код шаблона.

Завитки не должны быть заключены в двойные кавычки, поскольку они должны рассматриваться как динамическое c содержимое, а не как строки. Например, код должен быть @onChange={{action (mut el.value)}}, а не @onChange="{{action (mut el.value)}}"

Исправление шаблона должно помочь.

...