Knockout.js 如何获得可观察的array';长度是多少?

Knockout.js 如何获得可观察的array';长度是多少?,knockout.js,Knockout.js,我正在尝试创建一个合同行项目(CLIN)数组,该数组将显示为一般合同信息标题下的单个div元素 我能够让正常的可观测值工作,但是通过视图模型的构造函数传递数组似乎并没有创建clins可观测数组的任何部分 我有一本书。令我感到奇怪的是,HTML span标记上的data bind=“text:clins.length()甚至不返回零,而是不呈现任何内容 在jsiddle中是否仍有启用调试的功能,或者我是否应该看到警告/错误?jsiddle页面中的错误确实会发送到您的浏览器 至于您的错误,请尝试以下

我正在尝试创建一个合同行项目(CLIN)数组,该数组将显示为一般合同信息标题下的单个
div
元素

我能够让正常的可观测值工作,但是通过视图模型的构造函数传递数组似乎并没有创建clins可观测数组的任何部分

我有一本书。令我感到奇怪的是,HTML span标记上的
data bind=“text:clins.length()
甚至不返回零,而是不呈现任何内容


在jsiddle中是否仍有启用调试的功能,或者我是否应该看到警告/错误?

jsiddle页面中的错误确实会发送到您的浏览器

至于您的错误,请尝试以下操作:


这将
observearray
转换为
数组
,并使用数组的
length
属性


请参阅。

对于希望在不使用
\u destroy
ed项的情况下获取可观测阵列长度的任何人,您可以使用此功能:

ko.observableArray.fn.totalVisible = function() {
    var items = this(), count = 0;

    if (items == null || typeof items.length === "undefined") {
        return 0;
    }

    for (var i = 0, l = items.length; i < l; i++) {
        if (items[i]._destroy !== true) {
            count++;
        }
    }

    return count;
};
DR/FIX固定 执行
observearray
作为一个函数,以获取底层数组,然后获取其长度:


MyobArray的长度为:
为什么会发生这种情况? 让我提供一个答案,除了提供一些细节之外,还回答了一个我觉得很多人都有的高度相关的问题:

为什么
myobarray.length
总是返回0(零)?

这种情况的典型再现是:

ko.applyBindings({myObsArray:ko.observableArray([“一”、“二”、“三”)});


MyobArray.length=
哇,我真不敢相信我没有看到。谢谢你的帮助。检查此项:,添加了自定义绑定
currencyText
,如果你感兴趣。非常感谢,我会检查它。我做了同样的事情,但我没有定义为输出…更新:拼写错误:clins()。长度应该是clins().lengthCool,我会将此文件归档以备以后使用。谢谢。:-)
myObservableArray.totalVisible();