Kendo MVVM:如何将函数绑定到模板内的模板?

时间:2017-03-24 10:55:19

标签: mvvm kendo-ui kendo-mvvm kendo-template kendonumerictextbox

我在这里准备了一个简单的道场:http://dojo.telerik.com/iQERE

情境:

我在另一个数组中有一个数组,我想在一个表格/网格中用一个kendo模板渲染它。 第一个数组的项是行,内部数组的项是列。

我用Google搜索并找到了这种技巧:template inside template

问题是:

1)如何绑定嵌套数组项的值?

我尝试了data-bind="value:subval",但它不起作用。

我认为因为使用该技术,该模板的“真实数据”是外部数组,而不是内部数据!

尝试data-bind="value: item.subval" - 无所事事。

所以最后我尝试data-bind="value: subList[#:index#].subval"并且它有效。但我问自己:这是对的吗?

2)如何将值绑定到嵌套模板中的函数? (着名的剑道mvvm计算字段)。

我希望我可以将所有输入绑定到一个独特的函数,该函数接受“调用者”值并执行某些操作(例如,乘以另一个模型字段)。 但我无法摆脱谁调用函数...我的"e"参数是整个数据!!

经过一些实验后,我尝试了这样的方式:http://dojo.telerik.com/OpOja并且第一次工作......但是当模型的value1发生变化时,似乎函数不会触发(我希望在正常的mvvm行为中) ,也许是因为我在dataSource内宣布了这个功能。 (它本身不是observable个对象?)

我希望我能很好地解释我的问题!

1 个答案:

答案 0 :(得分:1)

好吧..似乎不可能。来自Telerik机票的回复: 我担心,Kendo MVVM框架不允许您在讨论的场景中实现所需的双向绑定。原因在于,模板中的$ .each()只会执行一次,并且不会在viewModel更改中重新评估。

此外,如果您需要为MVVM模型配置分层数据源,我建议您关注this example。您会注意到,与您的实现类似,它包含一个字段,该字段是从另一个字段计算的函数。但是,它也不会允许您进行所需的双向绑定。因此,更新value1字段不会再触发上述功能。