2

この JS Bin をチェックしてください http://jsbin.com/iqikuf/3/edit

以下をコンソールで実行すると、表示される結果は理にかなっています。

ステートメント: vd.tools.push(dataItem);
結果: 2

しかし、コンソールで実行すると以下の結果が得られるのはなぜでしょうか?

ステートメント: vd.tools.length
結果: 0

4

2 に答える 2

2

DCoderが指摘したように

括弧が必要

vd.tools().length

于 2013-01-03T06:03:16.380 に答える
1

DCoderの回答を統合して説明したいと思います。

vd.toolsプロパティが格納されたアイテムの量を参照しないJavascript オブジェクトであるobservableArrayを参照します。length

「括弧を追加する」ことで、KnockoutJS の observableArray によってラップされた基礎となる配列への参照vd.tools()を取得します。

これはデータを格納する実際の配列であり、ここでlength正しい結果を期待してプロパティを要求できます。

したがって、DCoderの答えは完全に理にかなっています。

于 2015-01-06T18:34:57.007 に答える