小编Pet*_*vac的帖子

如何避免在每个函数上绑定(this)?

我正在实现一个构建在OpenLayers3之上的Web地图客户端,它应该能够连接到多个WMS服务器,请求WMS功能并显示服务器通告的层.

var MyMapClient = function(params) {
    this.wms_sources_ = params.wms_sources;
    this.wms_capabilities_ = [];
}

MyMapClient.prototype.parse_capabilities = function(index) {
    var capabilities = this.wms_capabilities_[index];
    // do something with capabilities 
}

MyMapClient.prototype.load_wms_capabilities = function() {
    var parser = new ol.format.WMSCapabilities();

    jQuery.each(this.wms_sources_, (function (index, wms_source) {

        console.log("Parsing " + wms_source.capabilities_url);

        jQuery.when(jQuery.ajax({
            url: wms_source.capabilities_url,
            type: "GET",
            crossDomain: true,
        })).then((function (response, status, jqXHR) {
            var result = parser.read(response);
            console.log("Parsed Capabilities, version " + result.version);
            this.wms_capabilities_[index] = result;
            return index;
        }).bind(this)).then(this.parse_capabilities.bind(this));

    }).bind(this));
};
Run Code Online (Sandbox Code Playgroud)

上面的代码运行正常,但我bind(this)每次都想调用一个需要访问MyMapClient实例的"私有"变量的函数.是否有更好的方法可以一致地访问实例内部,而不会牺牲可读性?

javascript bind

11
推荐指数
1
解决办法
1040
查看次数

我可以在Vim中使用多行状态行吗?

有没有办法让Vim中的状态行跨越多行(例如插入换行符或类似的东西)?

我想%F在一行中打开已打开文件的完整路径(),在下一行中有一些其他信息,因为我经常在长路径中打开文件,并且整个路径"扩展"整个状态行,隐藏所有其他指标和旗帜.另一方面,我仍然希望看到当前文件的完整路径.

我知道我可以设置完整路径宽度的上限,例如%.40F,我只想知道是否还有其他方法.

vim statusline

5
推荐指数
2
解决办法
1123
查看次数

如何偏移 ol.style.Circle 或 ol.style.RegularShape?

可以为ol.style.Text实例(offsetXoffsetY属性)定义偏移量并为实例定义自定义锚点ol.style.Iconol.style.Circle或中均不存在此功能ol.style.RegularShape

我需要将我的特征绘制为具有适当偏移的四个形状(三角形、圆形等),以便它们不会重叠并完全渲染。

Egx是特征的真实坐标,四个Os是四个不同颜色的圆圈。每个都代表一个属性的值,我需要根据该值动态地为它们着色。

O O
 x
O O
Run Code Online (Sandbox Code Playgroud)

实施抵消的最佳方式是什么?是否有可能以某种面向未来的方式扩展现有原型?或者我应该从头开始编写自己的样式(我想尽可能多地重用现有的 OL-3 代码)?ol.style.Icon或者使用四个具有不同锚点的 s更好?

javascript openlayers-3

5
推荐指数
1
解决办法
1208
查看次数

标签 统计

javascript ×2

bind ×1

openlayers-3 ×1

statusline ×1

vim ×1