Knockout,无法解析空可观察数组中的Binding错误

时间:2013-11-29 16:18:34

标签: javascript arrays knockout.js ko.observablearray

我有这个错误

Unable to parse bindings.
Message: TypeError: Cannot read property 'length' of undefined;
Bindings value: text:SomeArray().length

我在这里重新创建了错误。

http://jsfiddle.net/LkqTU/12758/

var somevalue = [{Test:[]}]; // this is not always blank, but i cannot control it.
var ViewModel = function() {
     this.SomeArray=ko.observableArray(somevalue.Test);   
};

<span data-bind="text:SomeArray().length"></span>
<!-- ko if: SomeArray().length>0 -->
Hello World!
<!-- /ko -->
使用

<!-- ko if: SomeArray() -->
Hello World!
<!-- /ko -->

不会创建错误,但在数组为空时也不会跳过“Hello World”消息。 我需要检查数组是否为空白,并且仅在非空白时显示消息。

我不能使用foreach,因为我不是通过数组循环而只是检查它是否只是空白。

1 个答案:

答案 0 :(得分:1)

somevalue是一个数组。所以somevalue.Test没有定义,但somevalue [0] .Test将返回[]。

this.SomeArray=ko.observableArray(somevalue[0].Test);   

See fiddle