node.js - 角度:updateRenderer 抛出无法读取字符串变量未定义的属性“名称”
问题描述
我在显示字符串变量时遇到了一个非常奇怪的问题。我得到的错误是:
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 模板中时,会记录上述错误。此变量的值不会在其他任何地方访问。这是在一个组件内,其他变量在模板中可见。
我不知道还有什么可能与这个问题有关。我真是一头雾水……
解决方案
我不断挖掘,发现错误的原因是一种用于设置其值的函数被调用。它在更高的另一个组件中的 (changeListener) 中被调用,虽然它在控制台日志中正确报告,但由于我猜更高的组件无权访问该变量,因此引发了错误。在这种情况下登录非常混乱。
解决方案是将更改 var 值的函数从 changeListener 中使用的函数移动到另一个位置,该位置仅在该组件中使用。
推荐阅读
- javascript - 点击鼠标获取图片的宽度和高度
- python - Python 中的 VIX 模型
- git - 从 Git 中提取元信息,允许 git log 而不获取完整的 repo
- java - java.lang.NoClassDefFoundError 使用 Maven 在我的 Java 应用程序中使用 SourceAFIS
- azure - Azure VM 中的 BCP 查询:SQLState = 37000,NativeError = 40515 不支持对“DBName.dbo.TableName”中的数据库和/或服务器名称的引用
- java - 无法从另一个类调用方法
- kotlin-native - Kotlin/native 编译器无法运行 inet_addr、htons 等
- git - 发布我的 .git 目录进行调试是否安全?
- android - Android 设备可 ping,但 ADB 显示离线
- python-3.x - 图形缩减