gpt4 book ai didi

google-maps - 谷歌地图和knockoutjs

转载 作者:行者123 更新时间:2023-12-04 04:59:57 24 4
gpt4 key购买 nike

我正在制作一个单页应用程序,在第二个 View 中我需要显示谷歌地图。我正在使用要创建 map 对象的 Google map API。

 var map = new google.maps.Map(mapId, {
zoom: 5,
center: new google.maps.LatLng(55, 11),
mapTypeId: google.maps.MapTypeId.ROADMAP
});

参数 mapId给我一个问题。该 View 包含一个 id 为“mapId”的 div,但我无法获取 id,因此无法显示 map 。我尝试了 HTML 绑定(bind)、属性绑定(bind),但它不起作用。我是 knockout 的新手。请提出一些方法

最佳答案

您应该像这样使用自定义绑定(bind):

ko.bindingHandlers.map = {

init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var mapObj = ko.utils.unwrapObservable(valueAccessor());
var latLng = new google.maps.LatLng(
ko.utils.unwrapObservable(mapObj.lat),
ko.utils.unwrapObservable(mapObj.lng));
var mapOptions = { center: latLng,
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP};

mapObj.googleMap = new google.maps.Map(element, mapOptions);
}
};

您的 HTML 将如下所示:

<div id="mapDiv" data-bind="style:{width:'300px',height:'300px'},map:myMap"></div>

最后你的 View 模型:

function MyViewModel() {
var self = this;
self.myMap = ko.observable({
lat: ko.observable(55),
lng: ko.observable(11)});
}

这是 fiddle这比您要求的要多一点,但也应该适用于您的情况。

关于google-maps - 谷歌地图和knockoutjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12722925/

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