2012-03-12 4 views
4

私が欠けている何かが存在しなければならない、しかし、今このことについて夢中に近いことだし、それは簡単なことだろう考え出し...ノックアウトJS - 多次元observableArraysと表示サブアレイデータ

Iあなたが期待するよう、大丈夫です、私のデータバインド、data-bind="text: Site().Name"について>仕事

- >会社 -

サイト:「そうであるko.observableArrayで多次元配列を、得たVEの。しかし、私はdata-bind="text: Site().Company().Name"またはdata-bind="text: Site().Company.Name"でサブアレイにアクセスすることはできません。

他の誰かが同じ問題を抱えていたのですか、それとも私は何か劇的に間違っていますか?オブジェクトは、コンソールに表示されるので、アレイに正しくロードされます。

答えて

9

私が正しくあなたの問題を理解し、SiteCompanyオブジェクトのobservableArrayが含まれており、各CompanyオブジェクトはJobオブジェクトのobservableArrayが含まれている場合、あなたのアプローチは機能しません。

data-bind="text: Site().Company().Name"は、Companyオブジェクトを含むobservableArrayのプロパティNameを取得しようとしています。しかし、最初にCompanyの名前を得るには、data-bind="text: Site().Company()[0].Name"と書くことができます。

より一般的なアプローチは、アイテムを繰り返し処理することです。次のようなものがあります。

<!-- ko with: Site --> 
Site name is <span data-bind="text: Name"/> 
<ul> 
    <!-- ko foreach: Company --> 
    <li>Company name is <span data-bind="text: Name"/> 
     <!-- ko foreach: Job --> 
     <li>Job name is <span data-bind="text: Name"/> 
     </li> 
     <!-- /ko --> 
    </li> 
    <!-- /ko --> 
</ul> 
<!-- /ko --> 

詳細については、http://knockoutjs.com/documentation/foreach-binding.htmlを参照してください。

あなたの質問に誤解があった場合、これはあなたが探しているものであり、謝罪します。

+0

ありがとう、私はちょうど人生をより簡単にするようにforeachバインディングのルート(私の配列内に唯一の要素があっても)のルートを行くつもりです。 –