将绑定应用于挖空中的多个元素

时间:2016-12-20 06:50:24

标签: javascript jquery knockout.js durandal

我现在一直在使用淘汰赛,但我坚持这个错误"你不能多次将绑定应用于同一个元素" 。我在这里阅读了一些解决方案,并尝试使用其中一种解决方案。

这是我的代码段

一旦页面加载

,就应用绑定
 $(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));

                  });
              });
        });

我通过JSON调用id

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

  };

a,b,c是我的html代码中的id。 这是ViewModel的代码

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

HTML代码

<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>

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你可以提供帮助,你真的只想在整个文档上使用一次绑定。将您的页面视为模型的视图,然后相应地创建模型。使用'applyBindings'方法在幕后发生了许多事情,这会创建许多观察者和订阅者。

您使用的现有代码作为示例并不是那么清晰,以便可以制作示例解决方案,但是如果您在Plunkr或其他基于云的代码中创建问题,那么应该提供更好的建议。 / p>