2016-03-04 1 views
0

Следуя руководству по https://vaadin.com/docs/-/part/framework/gwt/gwt-javascript.html Я создал компонент для библиотеки FullCalendar js. Он работает хорошо, но я все еще не могу понять, как отправлять изменения в getState() на стороне JS на стороне сервера, чтобы они сохранялись. Vaadin отправляет мне серверный объект состояния на JavaScript, и я могу получить к нему доступ как 'this.getState().property' в моей части компонента JS. Теперь, когда пользователь делает некоторые изменения в браузере Fullcalendar (например, переключает представление из месяца в неделю) и может обнаружить его и сохранить обратно в объект состояния "this.getState().viewName='yyy'" Но эти изменения не синхронизируются на сервере, поэтому мой код на стороне сервера не может видеть его в мое состояние JavaBean ...«Интеграция компонентов и расширений JavaScript» и как отправлять изменения состояния с JS на сервер?

Я также прочитал эту статью http://vaadinsnippets.blogspot.cz/2012/10/smooth-integration-of-vaadin-7-and.html, но до сих пор не знаю, как это должно работать. Любой намек?

ответ

1

Вы не можете изменить «общее состояние» на клиенте. Из документов Vaadin https://vaadin.com/docs/-/part/framework/gwt/gwt-shared-state.html:

[общее состояние] следует рассматривать только для чтения на стороне клиента, так как она не сериализовать обратно на сторону сервера.

Я думаю, что вы ищете является RPC:

RPC вызовы с клиентской стороны на стороне сервера осуществляется через интерфейс RPC, который расширяет интерфейс ServerRpc. Интерфейс сервера RPC просто определяет любые методы, которые могут быть вызваны через интерфейс .

https://vaadin.com/docs/-/part/framework/gwt/gwt-rpc.html