我使用knockoutJS作爲我的udacity課程,而且我似乎無法更新我的DOM的一部分。KnockoutJS不更新dom - 與Googlemaps api交互
我正在與google maps API進行交互。我有一個observableArray,其中包含具有一些內容的位置的對象以及包含值true或false的「show」元素。 現在observableArray正在更新(它基於標記是否在可見地圖的範圍內),但它並沒有更新我的DOM,因爲它只能列出可見位置的標記標題。
this.locations = ko.observableArray([{
title: 'Camden Brookwood',
location: {
lat: 33.8027355,
lng: -84.3973864
},
content: "Camden Brookwood, Rank: 1",
show: true
},
{
title: 'Monroe Place',
location: {
lat: 33.8092084,
lng: -84.370107
},
content: "Monroe Place, Rank: 2",
show: true
},
{
title: 'Capitol Gateway',
location: {
lat: 33.7453517,
lng: -84.384106
},
content: "Capitol Gateway, Rank: 3",
show: true
},
{
title: 'Gables 820 West',
location: {
lat: 33.7808463,
lng: -84.4162514
},
content: "Gables 820 West, Rank: 4",
show: true
},
{
title: 'Montage Embry Hills',
location: {
lat: 33.8827244,
lng: -84.2480548
},
content: "Montage Embry Hills, Rank: 5",
show: true
}
]);
以下是更新這些值
google.maps.event.addListener(map, 'tilesloaded', function() {
for(var i = 0; i < locations().length; i++) {
if(map.getBounds().contains(locations()[i].location))
locations()[i].show = true;
else {
locations()[i].show = false;
}
}
});
下面是相關的部分使用「如果」數據 - 的DOM
<div data-bind="foreach: locations">
<div class="mini-container" data-bind="visible: show">
<div data-bind="text: show"></div>
</div>
</div>
我也試過代碼綁定。
哦,不,這不是我想要做的事。 我有一個列表的左側我想在列表中顯示標記位置的名稱。 –