将getValue与map.layers [i] .name进行比较

时间:2014-12-15 17:17:59

标签: extjs openlayers extjs3 geoext

作为xtype组合的一部分,我想知道我在简单数据存储中选择的图层(由this.getValue()表示)是否存在于地图图层中。如果是这样,A应该发生,B如果不发生,myLayer。问题是listeners: { 'select': function(combo, record) { for(var i = 0; i < mapPanel.map.length; i++) { var myLayer = mapPanel.map.layers[i].name; if (myLayer == this.getValue()) { // do A here... } else { // do B here... } } } } 变量似乎无法识别,即使Opera Dragonify完全没有引发任何错误。哪里会出错?

{{1}}

感谢您的任何指示,

2 个答案:

答案 0 :(得分:1)

我认为问题在于您使用的是this.getValue()而不是combo.getValue()。 我不知道您的应用是如何设置的,但通常最好使用听众的第一个参数而不是关键字this,以避免范围问题。

希望这有帮助

答案 1 :(得分:0)

@Guilherme Lopes非常感谢,但解决方法是:mapPanel.map.layers.length而不是mapPanel.map.length