Kendo MVVM:如何将函数绑定到模板内的模板?
Kendo MVVM: How to bind a function to a Template inside a Template?
我这里准备了一个简单的道场:http://dojo.telerik.com/iQERE
场景:
我在另一个数组中有一个数组,我想用 kendo 模板以某种 table/grid 的形式呈现它。
第一个数组的项目是行,内部数组的项目是列。
我用谷歌搜索并找到了这个技巧:template inside template
问题是:
1) 如何绑定嵌套数组项的值?
我尝试了 data-bind="value:subval"
但它不起作用。
我认为因为使用该技术,此模板的 'real data' 是外部数组,而不是内部数组!
尝试过data-bind="value: item.subval"
- 没有结果。
所以最后我尝试了 data-bind="value: subList[#:index#].subval"
并且成功了。但我问自己:这是正确的吗?
2) 如何将值绑定到嵌套模板中的函数? (著名的 kendo mvvm 计算字段)。
我希望我可以将所有输入绑定到一个独特的函数,该函数采用 'caller' 值并做一些事情(例如乘以另一个模型字段)。
但是我无法摆脱调用该函数的人...我的 "e"
参数是整个数据!!
经过一些实验后,我尝试了这种方式:http://dojo.telerik.com/OpOja 并且第一次成功...但是当模型的 value1 发生变化时(我希望在正常的 mvvm 中),该函数似乎不会触发行为),可能是因为我在 dataSource
中声明了函数。 (它本身不是 observable
对象?)
希望我解释清楚我的问题!
嗯..好像不行。来自 Telerik 票证的响应:
恐怕 Kendo MVVM 框架不允许您在所讨论的场景中实现所需的双向绑定。原因是模板中的 $.each() 只会执行一次,不会在 viewModel 更改时重新计算。
此外,如果您需要为 MVVM 模型配置分层数据源,我建议您遵循 this example。您会注意到,与您的实现类似,它包含一个字段,该字段是作为另一个字段的函数计算的。但是,它也不允许您进行所需的双向绑定。所以value1字段的更新不会再次触发上述函数。
我这里准备了一个简单的道场:http://dojo.telerik.com/iQERE
场景:
我在另一个数组中有一个数组,我想用 kendo 模板以某种 table/grid 的形式呈现它。 第一个数组的项目是行,内部数组的项目是列。
我用谷歌搜索并找到了这个技巧:template inside template
问题是:
1) 如何绑定嵌套数组项的值?
我尝试了 data-bind="value:subval"
但它不起作用。
我认为因为使用该技术,此模板的 'real data' 是外部数组,而不是内部数组!
尝试过data-bind="value: item.subval"
- 没有结果。
所以最后我尝试了 data-bind="value: subList[#:index#].subval"
并且成功了。但我问自己:这是正确的吗?
2) 如何将值绑定到嵌套模板中的函数? (著名的 kendo mvvm 计算字段)。
我希望我可以将所有输入绑定到一个独特的函数,该函数采用 'caller' 值并做一些事情(例如乘以另一个模型字段)。
但是我无法摆脱调用该函数的人...我的 "e"
参数是整个数据!!
经过一些实验后,我尝试了这种方式:http://dojo.telerik.com/OpOja 并且第一次成功...但是当模型的 value1 发生变化时(我希望在正常的 mvvm 中),该函数似乎不会触发行为),可能是因为我在 dataSource
中声明了函数。 (它本身不是 observable
对象?)
希望我解释清楚我的问题!
嗯..好像不行。来自 Telerik 票证的响应: 恐怕 Kendo MVVM 框架不允许您在所讨论的场景中实现所需的双向绑定。原因是模板中的 $.each() 只会执行一次,不会在 viewModel 更改时重新计算。
此外,如果您需要为 MVVM 模型配置分层数据源,我建议您遵循 this example。您会注意到,与您的实现类似,它包含一个字段,该字段是作为另一个字段的函数计算的。但是,它也不允许您进行所需的双向绑定。所以value1字段的更新不会再次触发上述函数。