Пользовательский виджет Kendo MVVM: принять объект в качестве параметра

При разработке пользовательского виджета Kendo MVVM передача простого связанного с данными параметра кажется приемлемой, будь то в пользовательской привязке. IE:

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

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

Я замечаю css а также events привязки могут принимать объекты в качестве параметров. Я действительно хочу принимать объекты в качестве параметров, но когда я пытаюсь, это выдает ошибку:

<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();

... и другие варианты, но ничего не работает. Можно ли принимать такие объекты, как { prop: value, prop2: value2 } для пользовательских виджетов Kendo UI в их структуре MVVM?

1 ответ

Решение

Ваш ответ находится в этой статье, Создание Kendo UI Binder для сложных типов.

Если вы пытались сделать такое связующее, вы, вероятно, столкнулись с проблемами. Kendo фактически не предоставляет поддержку этих сложных путей привязки для пользовательских связывателей.

По сути, Kendo UI ожидает, что ваши выражения будут строковым представлением имени переменной или функции, а не сложным объектом. Что вам нужно сделать, это позвонить this.bindings.class.get() несколько раз, чтобы получить нужные вам значения.

Чтобы получить эти значения для get() Чтобы прочитать функцию, вы создадите список пар ключ / значение из сложного объекта в привязке init() метод конструктора. Тогда в твоей привязке refresh() метод, вы просто перебираете этот список и вызываете get(),

Другие вопросы по тегам