У меня есть формы, где я пытаюсь получить своего рода хешированный идентификатор, поэтому я решил использовать время в миллисекундах для достижения этого.
У меня есть следующая функция
static get timeNum() {
return new Date().getTime();
}
generateId(id: string): string {
return id + '_' + BaseForm.timeNum + '_' + this.index;
}
И яиспользуйте его при вводе, например [id]="generateId('toDate')"
Однако похоже, что Angular пытается обновить это значение более одного раза, когда значение было отображено вначале и возникает ошибка.
ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилось после того, как оно былопроверено.Предыдущее значение: 'id: type_1545750683934_0'.Текущее значение: 'id: type_1545750683944_0'.
Есть ли способ преодолеть это?Я генерирую поля и мне нужно дать им идентификатор только один раз, когда они создаются в DOM.