2011-12-14 17 views
2

に私はこのようなknockout.jsで動作するコードの部分を持っています。 匿名テンプレートはknockoutJS

<div class="topicDetail" data-bind="with: activeTopic"> 
    <ul class="querylist" data-bind="foreach: queries"> 
     <li class="query"> 
      <span class="querylink" data-bind="click: select">{{= text}}</span> 
      <span data-bind="withdocs: positiveExamples"></span> 
      <span data-bind='person: searcher'>&nbsp;</span> 
      <span data-bind='time: time'></span> 
     </li> 
    </ul> 
</div> 

しかし、これはエラーで失敗します:私は、私はこのような匿名のテンプレートを使用して、より簡潔に、それを書き換える必要があると思ったノックアウト-1.2.1.debug.jsのライン1226で

Uncaught Error: Unable to parse binding attribute. 
Message: ReferenceError: queries is not defined; 
Attribute value: foreach: queries 

。これは、データバインディングULを指します。

この問題を抽象化したjsfiddleを作成しましたが、フィドルが動作します。これを追跡するために他に何を見なければならないでしょうか?

+1

「activeTopic」には何かあるが、最初は「queries」の配列がない場合があるようです。 'activeTopic'はどのように初期化されますか?それは今まで "クエリ"配列を持たないでしょうか? –

+0

はい、匿名のテンプレートはKO 1.3で動作します。あなたは1.2を使用しています。 –

答えて

3

あなたが述べたように、あなたがノックアウト1.2.1を使用している場合:

...in line 1226 of knockout-1.2.1.debug.js. This refers to the UL data binding.

を...そして、それはあなたの問題です。バージョン1.3.0を使用する必要があります。詳細については、http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-beta-available/の「コントロールフローバインディング」のセクションを参照してください。

あなたのフィドルが働く理由は、それがノックアウトの最新バージョンを使用しているということです。

+0

ありがとうございました。 –