gpt4 book ai didi

javascript - 包含的 HTML 模板中的 AngularJS id 属性

转载 作者:行者123 更新时间:2023-11-30 12:05:24 25 4
gpt4 key购买 nike

在 AngularJS 中,我的 JavaScript 无法识别我的 HTML 模板中的 id 属性。

例如:

index.html 文件:

<div ng-controller="SubwayMapController">
<div subway-map></div>
</div>

scripts.js 文件:

app.directive('subwayMap', function () {
return {
templateUrl: 'Views/subway-map.html'
};
});

map = new OpenLayers.Map("basicMap");
var mapnik = new OpenLayers.Layer.OSM();
var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984
var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
var position = new OpenLayers.LonLat(2.35,48.85).transform( fromProjection, toProjection); //Paris
var zoom = 12;

map.addLayer(mapnik);
map.setCenter(position, zoom );

地铁 map .html 文件:

<div id="basicMap"></div> 

当我打开索引页面时,我希望显示来自 Openstreetmap 的 map ,但没有任何反应。

最佳答案

尝试在指令的 link() 函数中设置 map 。另外,看起来您可以使用 DOMElement 而不是 ID 来 Map.render()

app.directive('subwayMap', function () {
return {
templateUrl: 'Views/subway-map.html',
link: function(scope, element) {
var map = new OpenLayers.Map();
var mapnik = new OpenLayers.Layer.OSM();
var fromProjection = new OpenLayers.Projection("EPSG:4326");
var toProjection = new OpenLayers.Projection("EPSG:900913");
var position = new OpenLayers.LonLat(2.35,48.85)
.transform(fromProjection, toProjection);
var zoom = 12;

map.addLayer(mapnik);
map.setCenter(position, zoom );
map.render(element[0]);
}
};
});

关于javascript - 包含的 HTML 模板中的 AngularJS id 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35369689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com