我需要在每次更新/更改属性时触发事件,以使dom元素与模型上的属性值保持同步(我使用john resig的简单继承http://ejohn.org/blog/simple-javascript-继承/).这可以通过跨浏览器方式进行吗?在我看来,如果我可以包装任何函数js用于设置属性并使其触发事件,它可以工作,我只是不知道如何做到这一点.
因此,我的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) 我有一种情况,系统硬盘驱动器上有大约190GB的可用磁盘空间,但当我使用navigator.webkitTemporaryStorage.queryUsageAndQuota()它查询Chrome中的存储配额时,只报告186MB是免费的.
我已经清除了所有本地数据库和应用程序存储.我甚至完全删除了Chrome及其Application Support文件夹(mac).
查询显示只有几kb正在使用,但只有186MB是免费的.我没想到会导致这个配额报告如此之低?此外,它不是隐身模式,我确保所有扩展都被禁用
我试图让板模板引擎与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 ×3
api ×1
express ×1
jquery ×1
maps ×1
node.js ×1
openlayers ×1
quota ×1
storage ×1
watch ×1