【问题标题】:KnockoutJS ArrayKnockoutJS 数组
【发布时间】:2012-12-15 15:37:53
【问题描述】:

请查看这个 JS Bin http://jsbin.com/iqikuf/3/edit

在控制台中运行以下命令时,显示的结果对我来说是有意义的。

声明:vd.tools.push(dataItem);
结果:2

但是为什么我们在控制台运行时会得到下面的结果呢?

语句:vd.tools.length
结果:0

【问题讨论】:

  • 感谢 DCoder,我无法接受您的回答,因为这是评论。如果您愿意,可以将其发布为答案,我会接受。

标签: javascript arrays knockout.js observable


【解决方案1】:

正如 DCoder 指出的那样

需要括号

vd.tools().length

【讨论】:

    【解决方案2】:

    我想整合和解释DCoder的答案。

    vd.tools 指的是一个 observableArray,它是一个 JavaScript 对象,lengthproperty 不是指存储项目的数量。

    通过“添加括号”vd.tools(),我们获得对由 KnockoutJS 的 observableArray 包装的底层数组的引用。

    这是存储我们数据的真实数组,在这里我们可以请求 length 属性以期待正确的结果。

    那么 DCoder 的回答就很有意义了。

    【讨论】:

    • tools observableArray 上的 .length 实际上是 Function.length,它返回函数期望的参数数量,因此为 0。
    猜你喜欢
    • 2014-10-23
    • 2018-10-22
    • 2012-04-10
    • 1970-01-01
    • 2013-11-18
    • 2017-01-01
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多