小编jos*_*web的帖子

javascript属性更改事件

我需要在每次更新/更改属性时触发事件,以使dom元素与模型上的属性值保持同步(我使用john resig的简单继承http://ejohn.org/blog/simple-javascript-继承/).这可以通过跨浏览器方式进行吗?在我看来,如果我可以包装任何函数js用于设置属性并使其触发事件,它可以工作,我只是不知道如何做到这一点.

javascript jquery watch

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

Openlayers/Openstreetmap背景是垂直条纹和压扁

因此,我的openlayers实现的背景似乎被压缩成垂直条纹.奇怪的是它并不总是这样,但即使我把所有的变化都藏回到我知道它正在工作的地方,它仍然被打破了.这让我想知道是否有些东西已经改变了瓷砖资产的交付方式.我已经尝试在使用osm和wms图层之间切换而没有任何改变,任何帮助将不胜感激.

这是相关的代码:

initMap: function() {
  var view = this;
  var map = this.map = new OpenLayers.Map();
  map.render(this.$map[0]);

  var wmsLayer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
    "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'});

  var osmLayer = new OpenLayers.Layer.OSM();

  this.layers = {
    point: new OpenLayers.Layer.Vector("Point Layer"),
    line: new OpenLayers.Layer.Vector("Line Layer"),
    polygon: new OpenLayers.Layer.Vector("Polygon Layer")
  };

  this.setValue(this.value);

  map.addLayers([this.layers.point, this.layers.line, this.layers.polygon, osmLayer]);

  drawControls = {
    point: new OpenLayers.Control.DrawFeature(this.layers.point,
      OpenLayers.Handler.Point),
    line: new OpenLayers.Control.DrawFeature(this.layers.line,
      OpenLayers.Handler.Path),
    polygon: new OpenLayers.Control.DrawFeature(this.layers.polygon,
      OpenLayers.Handler.Polygon)
  };

  this.layers[this.layerType].events.on({'sketchcomplete': function(feature) {

    if (!view.multiple) {
      // deactivate polygon layer once …
Run Code Online (Sandbox Code Playgroud)

javascript maps openlayers openstreetmap

9
推荐指数
2
解决办法
2849
查看次数

Chrome存储空间配额报告低于预期

我有一种情况,系统硬盘驱动器上有大约190GB的可用磁盘空间,但当我使用navigator.webkitTemporaryStorage.queryUsageAndQuota()它查询Chrome中的存储配额时,只报告186MB是免费的.

我已经清除了所有本地数据库和应用程序存储.我甚至完全删除了Chrome及其Application Support文件夹(mac).

查询显示只有几kb正在使用,但只有186MB是免费的.我没想到会导致这个配额报告如此之低?此外,它不是隐身模式,我确保所有扩展都被禁用

api storage google-chrome quota

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

Express.js自定义模板引擎(板)

我试图让板模板引擎与express.js一起使用.我最初的尝试是这样的:

app.register('.html', {
    compile: function (str, options) {
        var template = new plate.Template(str);
        return function(locals) {
            return template.render(locals, function(err, data) {
                return data;
            });
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我看到问题是template.render没有返回任何内容(未定义)但是将数据传递给回调.我不确定如何使它在这种情况下工作,因为Express期望compile函数返回一个函数,该函数在调用时直接返回渲染模板.

我想也许我可以使用promises来解决这个问题,但是由于快递代码不希望返回承诺,所以也没有成功.我不太愿意加速承诺所以我可能只是做错了:

app.register('.html', {
    compile: function (str, options) {
        var promise = new Promise();
        var template = new plate.Template(str);
        return function(locals) {
            template.render(locals, function(err, data) {
                promise.resolve(data);
            });
            return promise;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

以下是可行的自定义实现示例.不同之处在于下划线模板template()函数直接返回渲染的字符串,如下所示:

app.register('.html', {
    compile: function (str, options) {
        var template = _.template(str);
        return function (locals) {
            return template(locals);
        };
    } …
Run Code Online (Sandbox Code Playgroud)

javascript template-engine node.js express

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