Это своего рода продолжение моего предыдущего сообщения о вложенных формах в Angular2 (бета 3 с TS) (Angular2 beta: nesting form-based parent/child components and validating from parent), но я отправляю новый вопрос, поскольку он относится к другому типу проблемы.выражение «Angular2 (beta3)» изменилось после его проверки »в значениях формы обновления
Вы можете найти репродукцию проблемы, описанной здесь, в http://plnkr.co/edit/iCmmy9at2wF5qY0P6VmV. Короче говоря, в этом поддельном сценарии у меня есть компонент, представляющий одно слово из воображаемого словаря, а другой дочерний компонент, используемый для представления каждого смысла для этого слова; Таким образом, между родительским компонентом и его дочерними элементами существует соотношение 1-ко-многим. Оба имеют шаблон на основе формы, построенный с помощью построителя форм. Детский шаблон находится внутри NgFor
, где я привязываю каждый смысл от родительской (= слова) модели. Таким образом, все свойства чувства каждого слова автоматически привязаны к модели слова.
Некоторые из этих свойств имеют несколько валидаторов, прикрепленных (как стандартных, так и стандартных). Моя проблема заключается в том, что когда я программно устанавливаю модель слова из родительского компонента (что также подразумевает установку значения элементов формы), это, похоже, вызывает некоторые условия гонки в процессе валидации, что вызывает несколько исключений типа ИСКЛЮЧЕНИЕ: выражение '! definitionCtl.valid' изменилось после его проверки. Предыдущее значение: «true». Текущее значение: «false», которые блокируют дальнейшее выполнение кода.
AFAIK, единственная информация, которая кажется связанным с этим вопросом здесь:
- https://github.com/angular/angular/issues/5992,
- Angular2: Nested *ngFor resulting in 'Expression has changed after it was checked'
Однако решение для моего вопроса, кажется, не быть под рукой от эти обсуждения, если (если я хорошо понимаю), я выбираю вручную управлять всеми моими привязками, чего я бы хотел избежать, так как в реальном приложении их будет много. Может ли кто-нибудь помочь?
Спасибо, это работает! В любом случае, я не должен бояться потенциальных проблем синхронизации между DOM и базовой моделью? Надеюсь, что эти шероховатые края будут отполированы в финальном выпуске NG2 ... – Naftis
Является ли это хорошим (безопасным) способом работы? – Claudiu
enableProdMode не является рекомендуемой практикой. Http://stackoverflow.com/questions/34364880/expression-has-changed-after-it-was-checked#34364881 – cesarpachon