Невозможно синхронизировать виджеты по умолчанию с помощью Ajax. Единственный виджет, который по умолчанию использует способы обновления своих данных, - это виджетов DataTable. Для остальных и даже для атрибутов DataTable вам нужно сделать это самостоятельно.
Однако, если данные и виджеты достаточно сложны, вам следует рассмотреть возможность использования YUI App Framework. Комбинация моделей и просмотров поможет вам в создании сложных макетов с помощью виджетов. Model даст вам возможность легко привязать атрибуты к бэкэнду JSON, особенно если вы используете RESTful API endpoint. И View предоставит вам инструменты для настройки разметки и реагирования на события.
События модели load
и change
сообщают вам, когда данные обновляются. Так, на ваш взгляд, вы будете в состоянии реагировать на эти события и установить соответствующие атрибуты виджетов:
var MyView = Y.Base.create('myView', Y.View, [], {
initializer: function() {
this.get('model').on('change', this._updateWidgets, this);
},
_updateWidgets: function() {
var model = this.get('model');
this.someWidget.set('someAttr', mode.get('someAttr'));
}
});
Но, как я сказал, что не правильный способ сделать это. Вы можете использовать любую технику, которая вам нравится. Рамка приложений - это всего лишь набор базовых компонентов, которые можно использовать для структурирования вашего приложения. Он разработан для гибкости, поэтому он может вместить множество способов его использования. Другие способы могут использовать IO
напрямую или использовать DataSources
в сочетании с плагинами виджета. Это вопрос со многими правильными ответами.