为什么Knockout会忽略HTML代码绑定?

时间:2015-07-16 12:52:41

标签: javascript html knockout.js winjs

我正在使用KnockoutJS绑定到WINJS App中的表,当我第一次运行My App时,它运行正常且绑定正确。 这是Row.innetHTML =

 <tbody id="repeater" data-bind="foreach: labsTableArrayKo"     
  <tr class="tr">
        <td><span data-bind="text: VlabName"></span></td>
        <td><span data-bind="text: VMType"></span></td>
        <td>
           <div data-bind="if: VMType == 'Virtual Machine'">
             <span  data-bind="text: vmStatus"></span>
           </div>
           <div data-bind="if: VMType == 'RemoteApp'">
             <span  data-bind="text: 'Ready'"></span>
           </div>
        </td>
  </tr> 

但是当我更改在绑定中使用的Array时,某些HTML代码被删除(我不知道如何?!)。 Row.InnetHTML是=

                 <tr class="tr">
                     <td><span data-bind="text:VlabName"></span></td>
                     <td><span data-bind="text: VMType"></span></td>
                     <td>
                      <div data-bind="if: VMType == 'Virtual Machine'"></div>
                      <div data-bind="if: VMType == 'RemoteApp'"></div>
                    </td>

                </tr>

这是我如何通过Javascript绑定到HTML代码:

 var viewModel = {labsTableArrayKo: labs_Table_Array};
 ko.cleanNode(document.getElementById("repeater"));
 var q = document.getElementById("repeater").innerHTML;
 ko.applyBindings(viewModel, document.getElementById("repeater"));

那么问题是什么?

1 个答案:

答案 0 :(得分:0)

实际上我用(可见)替换了(If)并且它适用于我,我不知道为什么但它有效。