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