敲除无法解析绑定到功能中的foreach
问题描述:
我使用基因敲除和敲除-REST(它的映射,使可观察到的所有对象)
<script> var regosViewModel = new RegosViewModel();</script>
<span data-bind="text: regos().list()[0].rid()"></span>
<table class="table table-striped">
<thead><th>rid</th></thead>
<div data-bind="foreach: regos().list()">
<tr><td data-bind="text: rid()"></td></tr>
<script>ko.applyBindings(regosViewModel);</script>
跨度将返回数字1,但试图在下面的foreach循环中做同样的事情导致“Error:Unable to parse bindings。 Message:ReferenceError:Can not find variable:rid; Bindings value:text:rid()”。
任何人都可以解释为什么吗?值得注意的是,text:$ index也具有相同的绑定错误。
答
当数据绑定一个table
元素时,您必须确保它生成有效的html。 A table
不能直接持有div
。试试这个:
<table class="table table-striped">
<thead>
<tr>
<th>rid</th>
</tr>
</thead>
<tbody data-bind="foreach: regos().list()">
<tr>
<td data-bind="text: rid()"></td>
</tr>
</tbody>
</table>
看看这个例子表明,一个无效的表格标记不会呈现:
ko.applyBindings({ arr: [{label: "label 1"}, {label: "label 2"}] });
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<h3>Valid table:</h3>
<table>
<tbody data-bind="foreach: arr">
<tr>
<td data-bind="text: label"></td>
</tr>
</tbody>
</table>
<h3>Invalid table</h3>
<table>
<div data-bind="foreach: arr">
<tr>
<td data-bind="text: label"></td>
</tr>
</div>
</table>
你需要把“数据绑定=”的foreach :regs().list()“,并删除div:例如:
请显示您的型号代码。 –