2016-12-20 19 views
0

今のところノックアウトを使用していますが、このエラーが発生しました。"同じ要素にバインディングを複数回適用することはできません"私はここでいくつかの解決策を読んで、そのうちの1つを使用しようとしていました。ここでノックアウトの複数の要素にバインディングを適用する

は私のコードスニペットは、ページが、私はIDの

var sections = 
    { 
    defects : 
    { 
     a : '', 
     b : '', 
     c : '', 
    } 

    }; 

、B、Cを呼び出しています、それを通してJSON

$(document).ready(function() 
     { 
      $.each(sections, function(index0, v) 
       { 
       console.log("I am here"); 
        $.each(v, function(index1, v1) 
        { 
         console.log("went inside the looping statement"); 
         console.log(index1); 
         ko.applyBindings(new Model, document.getElementById(index1)); 

        }); 
       }); 
     }); 

をロード完了すると

バインディングを適用しています私のHTMLコードのidです。 は、ここですべてのヘルプは本当に感謝され

<tr class="" id="a" > 
      <td> 
       <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 question" > 
        <label class="QuestionTextProperties">Question 1 </label> 
       </div> 
       <div class="btn-group col-lg-12 col-md-12 col-sm-12 col-xs-12" data-toggle="buttons"> 
        <label class="btn col-lg-6 col-md-6 col-sm-6 col-xs-6" >        <input type="radio" name="a" data-bind="click:radio('defects','a')" class="a" value="0" id="a_No" ><i class="fa fa-circle-o "></i><i class="fa fa-check-circle-o "></i><span class="OptionsTextProperties"> No </span>       </label> 
        <label class="btn col-lg-6 col-md-6 col-sm-6 col-xs-6" >        <input type="radio" name="a" data-bind="click:radio('defects','a')" class="a" value="1" id="a_Yes" ><i class="fa fa-circle-o "></i><i class="fa fa-check-circle-o "></i><span class="OptionsTextProperties"> Yes </span>       </label> 
       </div> 
      </td> 
</tr> 

のViewModel

var Model = function() 
    { 
    var self = this; 
     self.radio = function(key,key1) 
     { 
      console.log(key,key1); 
      return;  
     } 
    } 

HTMLコードのためのコードです。前もって感謝します。

+0

あなたのHTMLを表示します。バインドしている要素は、お子様やお互いの親になることはできません。例えば。 '#id1 +#id2' *は*ですが、'#id1>#id2'は許されません。 – user3297291

+0

実際にHTMLとindex1の値を確認する必要があります。 すべてのセクションが兄弟である場合、コードはうまく動作するはずですが、エラーメッセージはネストされたセクションがあることを示しています。 – Shadowfox

+0

私は解決策を得ましたが、私のアプローチは少し変わります。私はあなたのコメントを読んで私が作っていた間違いを知ったと思います。 HTMLで質問を編集しました。ありがとう。 – user6000866

答えて

0

あなたが助けることができるのであれば、実際にはドキュメント全体に1回だけバインディングを適用したいだけです。あなたのページをあなたのモデルのビューと考え、それに応じてモデルを作成してください。場面の裏には、多くのウォッチャーとサブスクリプションを作成する 'applyBindings'メソッドがあります。

例として使用している既存のコードはあまり明確ではありませんが、Plunkrやその他のクラウドベースのコードで問題を作成すると、より良い提案が行われます。

関連する問題