我在这里准备了一个简单的道场:http://dojo.telerik.com/iQERE
场景:
我在另一个数组中有一个数组,我想在一种表格/网格中使用剑道模板渲染它。 第一个数组的项是行,内部数组的项是列。
我用谷歌搜索并找到了这种技术:模板中的模板
问题是:
1) 如何绑定嵌套数组项目的值?
我试过data-bind="value:subval"
但它不起作用。
我认为是因为使用这种技术,这个模板的"真实数据"是外部数组,而不是内部数组!
尝试data-bind="value: item.subval"
- 一无所获。
所以最后我尝试了data-bind="value: subList[#:index#].subval"
它有效。但我问自己:这是对的吗?
2) 如何将值绑定到嵌套模板中的函数?(著名的剑道 MVVM 计算字段)。
我希望我可以将所有输入绑定到一个独特的函数,该函数获取"调用者"值并做某事(例如乘以另一个模型字段)。 但是我无法摆脱谁调用了该函数...我"e"
论点是整个数据!!
经过一些实验,我尝试了这种方式:http://dojo.telerik.com/OpOja 和第一次工作......但似乎当模型的值 1 发生变化时,该函数不会触发(我在正常的 mvvm 行为中会期望),可能是因为我在dataSource
中声明了该函数。(它本身不是一个observable
对象?
我希望我很好地解释了我的问题!
嗯..似乎不可能。来自 Telerik 工单的响应: 恐怕 Kendo MVVM 框架不允许您在所讨论的场景中实现所需的双向绑定。这样做的原因是,在模板中的 $.each() 中只会执行一次,并且不会在 viewModel 更改中重新评估。
此外,如果您需要为 MVVM 模型配置分层数据源,我建议您遵循此示例。您会注意到,与您的实现类似,它包含一个字段,该字段是从另一个字段计算为函数的。但是,它也不允许您想要的双向绑定。因此,value1 字段的更新不会再次触发上述函数。