Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Создание своего компонента поддерживающего Bindable (https://javascript.ru/forum/extjs/57488-sozdanie-svoego-komponenta-podderzhivayushhego-bindable.html)

khusamov 05.08.2015 20:26

Создание своего компонента поддерживающего Bindable
 
Штатные компоненты могут при помощи bind как принимать значения из ViewModel, так и записывать в него.

Но как сделать свой компонент, чтобы он тоже так умел?

Я думал что дело в создании события.

Например есть свойство value. Надо сделать два метода setValue и getValue и сделать событие valuechange.

Но это не сработало.

Также не помогает twoWayBindable: ["value"]

khusamov 06.08.2015 13:08

поиски пока ни к чему не привели... Копание кода ничего не дало (код просто безразмерный... там копаться еще месяц наверное можно). Где почитать об этом теорию???

khusamov 06.08.2015 14:40

Сделал пример в песочнице

https://fiddle.sencha.com/#fiddle/roh

Поле myfield на прием работает, на передачу увы не пашет (то есть, когда я в нем меняю значение, то в связанных двух numberfield значение не меняется, а у штатных полей все работает как надо).

И как это переделать чтобы заработало?

khusamov 06.08.2015 19:55

Откапал таки способ это сделать. Оказывается в bindable есть для этого специальный метод:

field.publishState("value2", value);


Исправленный код в той же песочнице https://fiddle.sencha.com/#fiddle/roh

kolka 10.08.2015 09:14

Здорово. Сам пытался найти.. неудачно.. спасибо за находку.

khusamov 10.08.2015 10:50

Ага, теперь такие клевые штуки наклевываются))


Часовой пояс GMT +3, время: 20:23.