Я создал простой виджет картирования, используя Dojo и Google Maps. Карта отображается в dijit.layout.ContentPane, установленном в качестве центральной панели dijit.layout.BorderContainer (который имеет поле адреса и BusyButton на верхней панели); BorderContainer, в свою очередь, обернут в dojox.layout.FloatingPane. Виджет имеет подписку на тему, которая будет вызывать обновление отображения карты при предоставлении новых данных адреса. Функция обновления очень проста и выглядит следующим образом:
_updateAddress: function(data) {
this.addressMapper.show();
if (data === null || !data.address || data.address === "" ) {
this.address.attr("value", "");
} else {
this.address.attr("value", data.address);
}
this.mapBtn.makeBusy();
this._getMap();
}
Каждый раз, когда я вызываю эту функцию, метод resize () FloatingPane вызывается, когда я вызываю show (), и он увеличивает высоту и ширину BorderContainer на 12 пикселей каждый раз, когда отображается панель (даже с doLayout и isLayoutContainer) установить в false на FloatingPane). Кажется, я не могу предотвратить это или исправить после этого, что бы я ни пытался.
У кого-нибудь есть идеи, как это исправить?
Заранее спасибо!
- Джо М -