小编And*_*ols的帖子

jQuery.data(key)throw undefined不是一个函数

我有一些复选框,用于显示/隐藏列并自动调整它们以适应屏幕.我已使用数据属性将复选框链接到其相关列,并尝试使用jQuery.data()读取此值.这给出了"未定义不是函数"的错误,即使断点似乎表明我已经将变量正确设置到这一点.

HTML

<div class="col-xs-12">
    <span>Show or hide columns:</span>
    <input type="checkbox" checked="checked" id="column-selector" data-column="selectioncolumn" />Selection via dropdowns
    <input type="checkbox" checked="checked" id="column-selector" data-column="listcolumn" />Selected items
    <input type="checkbox" checked="checked" id="column-selector" data-column="mapcolumn" />Map
</div>

<div id="selectioncolumn" class="col-xs-4">
    Div 1
</div>
<div id="listcolumn" class="col-xs-4">
    Div 2
</div>
<div id="mapcolumn" class="col-xs-4">
    Div 3
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$(document).ready(function () {
    $('#column-selector').on('change', function () {
        var numberOfColumns = $('#column-selector:checked').length;
        var sizeOfVisibleColumn = numberOfColumns === 0 ? 4 : 12 / numberOfColumns;
        var columnClass = 'col-xs-' + sizeOfVisibleColumn; …
Run Code Online (Sandbox Code Playgroud)

html jquery custom-data-attribute

15
推荐指数
3
解决办法
2万
查看次数

在隐藏元素中绘制OpenLayers 3地图

我正在写一个页面,您可以在其中查看有关区域和地图的详细信息.详细信息在一个选项卡上,而地图在另一个选项卡上.HTML的相关部分如下,类来自Bootstrap.

<div class="col-xs-8">
    <ul class="nav nav-tabs">
        <li class="active"><a href="#tab-details" data-toggle="tab">Details</a></li>
        <li><a href="#tab-map" data-toggle="tab">Map</a></li>
    </ul>
    <div class="tab-content">
        <div id="tab-details" class="tab-pane fade in active"></div>
        <div id="tab-map" class="tab-pane fade">
            <div id="map-container" class="map"></div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

切片图层来自OSM,矢量图层通过提供KML文件的URL加载.它使用OpenLayers 3.0.0执行此操作,如下所示:

function ShowMap() {
    var area = $('#AreaCode').val();
    $('#map-container').empty();
    if (area != null && area != '') {
        var kmlUrl = '/kml?code=' + area;
        var tile = new ol.layer.Tile({ source: new ol.source.OSM() });
        var vectorSource = new ol.source.KML({ url: kmlUrl, projection: 'EPSG:3857' }); …
Run Code Online (Sandbox Code Playgroud)

javascript openlayers-3

8
推荐指数
1
解决办法
4201
查看次数

NPGSQL:使用LWGEOMCOLLECTION类型调用的相关操作

我有一个使用Npgsql获取PostGIS数据的查询.它的目的是取一个点(x,y坐标)并计算出那个(如果有的话)几何形状.对于数据库中的绝大多数几何,查询工作正常,但至少有一个我得到以下异常:

错误:XX000:使用LWGEOMCOLLECTION类型调用的相关操作.这是不受支持的.

堆栈顶部的跟踪是:

[NpgsqlException(0x80004005):错误:XX000:使用LWGEOMCOLLECTION类型调用的相关操作.这是不受支持的.]
Npgsql.d__0.MoveNext()+ 3160
Npgsql.ForwardsOnlyDataReader.GetNextResponseObject(布尔清理)+808 Npgsql.ForwardsOnlyDataReader.GetNextRow(布尔clearPending)+308 Npgsql.ForwardsOnlyDataReader.Read()+47

所有几何都应该是有效的,因为我调用ST_MakeValid任何不是,并且当前没有ST_IsValid返回false.几何图形是通过调用创建的,ST_GeomFromKML并且在地图上使用WMS通过GeoServer作为栅格图层渲染,或者作为矢量图层使用,ST_AsGeoJSON因此PostGIS数据似乎没问题.

有什么办法可以修改我的代码或数据来阻止这种情况发生吗?代码失败的部分是读入读取器的部分:

command.CommandText = "SELECT area_code FROM area WHERE ST_INTERSECTS(ST_SetSRID(ST_Point(:x, :y), 4326), shape) AND area_type_code = :typecode";
command.CommandType = CommandType.Text;
var typeCodeParameter = new NpgsqlParameter
{
    DbType = DbType.String,
    ParameterName = "typecode",
    Value = _typeCode
};
var xParameter = new NpgsqlParameter
{
    DbType = DbType.Double,
    ParameterName = "x",
    Value = _x
};
var yParameter = new NpgsqlParameter
{
    DbType = DbType.Double,
    ParameterName = …
Run Code Online (Sandbox Code Playgroud)

c# postgis npgsql

7
推荐指数
1
解决办法
3599
查看次数

在 TeamCity 中实现“除所有”权限

在 TeamCity Enterprise 7.1.3 中,我们目前为大多数应用程序设置了以下构建链

构建工件 > 部署到开发 > 开发验收测试 > 部署到集成 > 集成验收测试

开发人员都被设置为系统管理员,因为我们拥有开发和集成环境。但是,我们现在想要添加一个“部署到测试”项目并将权限限制为少数人。

我已经设置了对除“部署到测试”之外的所有项目都具有显式设置权限的角色。这是可行的,但是对于九十个(并且还在不断增长)的项目来说,它的维护性不太好。每次创建新项目时,都需要向这些角色添加权限。

所以我的问题是:TeamCity 中是否有一种方法可以将角色设置为除“部署到测试”之外的角色,以便在添加新项目时该角色自动拥有权限?如果没有,是否有管理此问题的最佳实践,或者我是否只需要在添加项目时不断修改权限?

teamcity

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

缩放 OpenLayers3 地图以覆盖多个矢量图层

我有一张 OpenLayers3 地图,由 OSM Tile 图层和一个或多个矢量图层组成。我可以使用将地图缩放为单层

vector.addEventListener("change", function() {
    map.getView().fitExtent(vectorSource.getExtent(), map.getSize());
});
Run Code Online (Sandbox Code Playgroud)

这有效。但是,如果我尝试在添加图层的循环中使用以下内容缩放以覆盖多个图层

vector.addEventListener("change", function () {
    if (bounds == null) {
        bounds = vectorSource.getExtent();
    } else {
        bounds = bounds.extend(vectorSource.getExtent());
    }
    map.getView().fitExtent(bounds, map.getSize());
});
Run Code Online (Sandbox Code Playgroud)

如果在循环外部声明边界,则具有单层的地图将继续工作。但是,如果层数超过一层,则 else 块中的代码会给出错误“未定义不是函数”。

根据文档getExtent() 返回一个范围对象,并且该范围对象有一个扩展方法,所以我不确定为什么会出现此错误。

javascript openlayers-3

3
推荐指数
1
解决办法
1198
查看次数

删除最后一个元素时,ko observable数组不会触发

我有一个元素的地图,显示当前正在加载的图层.我在一个knockout observable数组中保存了一个层名列表.加载新图层时,它们会按预期显示.当图层完成加载时,它们将按预期移除,但最后一个除外.即使调试显示它绑定的列表现在为空,也不会删除它.

要初始化可观察量:

self.currentlyLoadingLayers = ko.observableArray([]);
Run Code Online (Sandbox Code Playgroud)

什么时候加载图层:

self.layerLoadingStarted(layerName);
Run Code Online (Sandbox Code Playgroud)

加载图层时触发的事件:

layer.events.register('loadend', layer, function () {
    self.layerLoadingFinished(layerName);
});
Run Code Online (Sandbox Code Playgroud)

以及被调用的函数:

self.layerLoadingStarted = function (layerName) {
    self.currentlyLoadingLayers.push(layerName);
};

self.layerLoadingFinished = function(layerName) {
    for (var i = self.currentlyLoadingLayers().length - 1; i >= 0; i--) {
        if (self.currentlyLoadingLayers()[i] === layerName) {
            self.currentlyLoadingLayers().splice(i, 1);
        }
    }
    //if (self.currentlyLoadingLayers().length === 0) self.currentlyLoadingLayers([]);
};
Run Code Online (Sandbox Code Playgroud)

如果我取消注释上面函数中的最后一行,那么一切正常.为什么需要这个?不应该自动观察阵列现在为空的事实吗?

我的绑定:

<div id="layersLoadingMessage" data-bind="visible: $root.currentlyLoadingLayers() && $root.currentlyLoadingLayers().length">
    <div data-bind="foreach: $root.currentlyLoadingLayers">
        <div data-bind="text: $data"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

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