Kendo MVVM自定义小部件:接受对象作为参数

时间:2015-09-10 20:40:42

标签: kendo-ui kendo-mvvm

在开发自定义Kendo MVVM小部件时,无论是在自定义绑定中,传递一个简单的数据绑定参数似乎都很好。 IE:

<div data-bind="value: simpleParameter">This works fine</div>

<div data-bind="mybinding: simpleParameter">This also works fine</div>

我注意到cssevents绑定可以接受对象作为参数。我真的想接受对象作为参数,但是当我尝试时,它会抛出一个错误:

<div data-role="mycomponent" data-bind="value: { prop: value }">This throws</div>

<div data-role="mycomponent" data-bind="mybinding: { prop: value }">This throws too</div>

在自定义绑定的情况下,在我尝试访问该值之前,它不会抛出。我已经尝试过了......

var arg = this.bindings["mybinding"].get();

......和其他变化,但似乎没有任何作用。是否可以在MVVM框架中为自定义Kendo UI小部件接受{ prop: value, prop2: value2 }之类的对象?

1 个答案:

答案 0 :(得分:1)

您的答案在本文中Making Kendo UI Binders for Complex Types

  

如果您曾尝试自己制作这样的活页夹,那么您就拥有了   可能遇到问题。剑道实际上不提供支持   自定义绑定器的这些复杂绑定路径。

基本上,Kendo UI期望您的表达式是变量或函数名称的字符串表示形式,而不是复杂对象。您需要做的是多次调用this.bindings.class.get()来检索所需的值。

要获取要读取的get()函数的这些值,您将在绑定的init()构造函数方法中从复杂对象创建键/值对列表。然后,在您的绑定refresh()方法中,您只需遍历此列表并调用get()