无法读取主干中未定义的属性“长度”
Posted
技术标签:
【中文标题】无法读取主干中未定义的属性“长度”【英文标题】:Cannot read property 'length' of undefined in backbone 【发布时间】:2018-11-13 19:09:06 【问题描述】:我在检查长度时遇到未定义的错误。请看图
this. updateConfiguration = _.debounce(this.updateConfiguration, 300);
this.set( url: (HyprLiveContext.locals.siteContext.siteSubdirectory 11 ") + (slug ? "/" + slug : "") + "/p/" + this.get("productCode)
this.lastConfiguration = [];
this.calculateHasPriceRange(conf); conf = undefined
this.on('sync', this.calculateHasPriceRange);
var variations = this.get('variations'); variations = undefined
var sum = 0; sum = 0
!.. 0)
var stockArray = [];
for(var 1=0; i<variations.length; i++)
可能是什么原因?
【问题讨论】:
在此处发布带有 html 上下文的完整代码。 我们不想查看图像的代码。请将代码部分发布到您的帖子中。不看一些变量是未定义的,所以你需要弄清楚为什么它没有被设置。 欢迎来到 ***.com。请花一些时间阅读帮助页面,尤其是名为“我可以在这里询问哪些主题?”的部分。和“我应该避免问什么类型的问题?”。也请参观并阅读有关如何提出好问题的信息。最后请学习如何创建一个最小、完整和可验证的示例 您好,请花点时间查看How to ask a good question。如果您在此处提供代码示例而不是图像,它将对人们有所帮助。 Do not post images of code or errors! 图片和屏幕截图可以很好地添加到帖子中,但请确保帖子在没有它们的情况下仍然清晰有用。如果您发布代码或错误消息的图像,请确保您还复制并粘贴或直接在帖子中输入实际代码/消息。 【参考方案1】:尝试初始化数组,并检查一个真值:
var variations = [];
if (this.get('variations'))
variations = this.get('variations');
【讨论】:
这在 javascript 中毫无意义。无论this.get('variations')
返回什么都将覆盖您之前所做的。
没有未定义的长度,如果你初始化它是一个长度为0的空数组?如果这不适合 JavaScript,也许可以在初始化中使用条件。
但是当this.get
返回未定义时,它仍然是未定义的......当它被替换为get调用返回时,它不会神奇地知道它曾经是一个数组。不知道.get()
是什么,几乎不可能回答这个问题。
更改为检查真实值,对否决票有点苛刻,只是想提供帮助。以上是关于无法读取主干中未定义的属性“长度”的主要内容,如果未能解决你的问题,请参考以下文章
无法在下一个 js 上读取 firebase 中未定义的属性“长度”
错误类型错误:无法读取 Angular 7 拖放中未定义的属性“长度”