Knockout.js无容器“foreach”不与<table>一起使用

此代码引发错误(在Chrome中):“无法find结束评论标签以匹配:ko foreach:MyPlans”:

<table> <!-- ko foreach: MyPlans --> <tr> <td>Test</td> </tr> <!-- /ko --> </table> 

如果我使用一个列表,则一切正常:

 <ul> <!-- ko foreach: MyPlans --> <li> Test </li> <!-- /ko --> </ul> 

我想用一张桌子来使用无容器的foreach。 有什么我做错了吗? 这是一个错误?

这与浏览器自动插入tbody标签有关,这会在注释中造成不匹配。 呈现的输出将如下所示:

 <table> <!-- ko foreach: MyPlans --> <tbody> <tr> <td>Test</td> </tr> <!-- /ko --> </tbody> </table> 

史蒂夫确实做了一些工作,试图纠正错误的标签在KO,但最简单的事情要么是自己添加自己或添加tbody ,把你的约束力。

 <table> <tbody data-bind="foreach: MyPlans"> <tr> <td>Test</td> </tr> </tbody> </table> 

如果需要的话,表格有多个tbody标签是合法的。