【发布时间】:2014-12-11 01:36:07
【问题描述】:
我正在尝试使用两个视图模型的属性生成一个表,它们是主视图模型的子视图模型,使用 ko.applyBindings() 调用。
这个想法是为 SubVM1 中的每个元素生成一行,其中第一个单元格是元素的名称。然后对于 SubVM2 中的每个元素,都会在该行中添加一个额外的单元格。
行生成正确,第一个单元格显示 SubVM1 名称,但后面只有一个单元格,而不是 SubVM2 中有多少元素。
另外,数据绑定中的功能也不起作用。我尝试将 Value 函数声明为 SubV2 的原型,但错误为未定义。
无论如何,我不确定的事情显然是在绑定上下文中发生的,我们将不胜感激。
<tbody data-bind="foreach: {data: SubViewModel1, as: 'SubVM1'}">
<tr>
<td data-bind="text: SubVM1.Name" />
<!-- ko foreach: {data: $root.SubViewModel2, as: 'SubVM2'} -->
<td data-bind="text: Value(SubVM1.Type)"></td>
<!-- /ko -->
</tr>
</tbody>
编辑:部分完成 jsfiddle:http://jsfiddle.net/jgr71o8t/1
【问题讨论】:
-
请包含 jsfiddle
-
这是一个代表问题的 jsfiddle:jsfiddle.net/jgr71o8t/4
-
未捕获的错误:无法解析绑定。消息:ReferenceError:SubVM1 未定义;绑定值:文本:SubVM1.Name
-
jsfiddle.net/jgr71o8t/13 在这一个中,Name 工作并开始渲染,但它不访问 SubVM2。在虚拟 foreach 的数据绑定中的函数中键入。