我将 OL 2.11 与 GeoExt 1.1 一起使用。在测试和修改此 GeoExt 示例:http ://geoext.org/lib/GeoExt/widgets/form/FormPanel.html 后,我在销毁和读取新协议时遇到问题,我收到“TypeError: this.options is null HTTP.js(第 180 行)”在 firebug 中。我从第 180 行了解到的是新选项(在新协议中)不存在,不确定这是否是问题以及如何解决。这是原始协议(在 FormPanel 之外创建):
protocol = new OpenLayers.Protocol.HTTP({
url: '/fs/',
format: new OpenLayers.Format.GeoJSON({
ignoreExtraDims: true,
'internalProjection': new OpenLayers.Projection('EPSG:900913'),
'externalProjection': new OpenLayers.Projection('EPSG:4326')
})
});
这是创建新协议的 FormPanel 末尾的代码:
buttons: [{
text: 'Search',
handler: function() {
comboLayer = Ext.getCmp('idcombo').getValue();
keyword = Ext.getCmp('idtextfield').getRawValue();
protocol.destroy();
protocol = new OpenLayers.Protocol.HTTP({
url: '/fs/' + comboLayer + '?format=GeoJSON&comments__ilike=' + keyword + '&queryable=comments',
format: new OpenLayers.Format.GeoJSON({
ignoreExtraDims: true,
'internalProjection': new OpenLayers.Projection('EPSG:900913'),
'externalProjection': new OpenLayers.Projection('EPSG:4326')
})
});
protocol.read();
formPanel.search();
}
}]
在我删除“protocol.destroy();”的情况下,原始协议和新协议都被发送,但总是在新协议之后发送原始协议,这是因为请求是 AJAX 吗?原件之后可以寄新的吗?
我会感谢一些支持,在此先感谢,