Aurelia Validation и событие публикуют не обновляющие значения в View

Я использовал метод публикации агрегатов событий, чтобы обновить представление из другого представления. когда я создавал данные публикации и подписки был в состоянии получить в представлении модели, но это не обновляется в представлении с назначенными переменными. Если я использую JavaScript для заполнения значения, он работает, но не может вызвать проверку контроллера.

Ожидаемый результат:

  1. Из метода подписки я должен заполнить значения представления.
  2. После этого он должен вызвать валидацию при изменении значения.

В приведенном ниже описании есть два вида и модель. Один из них - это форма регистрации, а второй - форма данных. В форме данных у меня есть таблица с данными, по щелчку каждой строки я публикую одно событие с выбранными данными строки, и на это опубликованное событие я подписываюсь в виде модальной формы регистрации. Для более подробной информации смотрите ниже.

Гист-прогон: https://gist.run/?id=8416e8ca1b9b5ff318b79ec94fd3220c

1 ответ

Решение

Два возможных решения: (к вашему "неопределенному" предупреждению)

  1. + Изменить alert(this.email); в alert(myself.email);

  2. Используйте синтаксис толстой стрелки для функции подписки. Изменить:this.ea.subscribe('MyrowData', function(obj){вthis.ea.subscribe('MyrowData', obj => {Этот синтаксис позволяет новой функции сохранять контекст / область родительского элемента, что означает, что this.email все еще будет доступен.

Еще одно предложение:

Вы можете упростить вашу функцию data-form.js следующим образом:

Изменить:this.eventAggregator.publish('MyrowData', this.items[this.items.indexOf(item)]);чтобы:this.eventAggregator.publish('MyrowData', item);

Это будет работать, потому что вы уже предоставили item в вашем вызове функции click.delegate="PopulateData(item, $event)",

На самом деле, вы могли бы даже удалить $event а также event из двух PopulateData определения (в data-form.js и data-form.html).

Когда я реализую эти предложения, ваши данные также проверяются правильно.

Другие вопросы по тегам