angular: updateRenderer выдает Невозможно прочитать свойство 'name' неопределенного значения для строковой переменной - PullRequest
0 голосов
/ 30 мая 2020

У меня действительно странная проблема с отображением строковой переменной. Я получаю следующую ошибку:

ERROR TypeError: Cannot read property 'name' of undefined
at checkBindingNoChanges (core.js:9912)
at checkNoChangesNodeInline (core.js:13961)
at checkNoChangesNode (core.js:13935)
at debugCheckNoChangesNode (core.js:14764)
at debugCheckRenderNodeFn (core.js:14704)
at Object.eval [as updateRenderer] (MonitoringCriteriaComponent.html:93)
at Object.debugUpdateRenderer [as updateRenderer] (core.js:14686)
at checkNoChangesView (core.js:13775)
at callViewAction (core.js:14126)
at execEmbeddedViewsAction (core.js:14104)

Это выдается при попытке отобразить переменную строкового типа следующим образом:

<span>{{daysCounter}}</span>

Переменная объявляется и изменяется следующим образом:

daysCounter = '';

public countTotalNumberOfDays() {
  this.daysCounter = '' + DateUtils.calculateNumberOfDays(this.dateFrom.datePickerTime.toDate(), this.dateTo.datePickerTime.toDate());
  console.log('daysCounter', this.daysCounter);
}

Ошибка возникает после выполнения расчета, поскольку она должным образом регистрируется в журнале консоли, однако, когда она отображается в шаблоне html, указанная выше ошибка регистрируется. Значение этой переменной больше нигде не доступно. Это внутри одного компонента, другие переменные видны в шаблоне.

Я не знаю, что еще может иметь отношение к этой проблеме. Я в тупике ...

1 Ответ

0 голосов
/ 30 мая 2020

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

Решением было перемещение функции, изменяющей значение переменной, из функции, используемой в changeListener, в другое место, используемое только в этом компоненте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...