javascript - 无法从 knockout observableArray 中删除对象

标签 javascript google-maps-api-3 knockout.js

我在从可观察数组中删除对象时遇到问题。

声明:

self.points = ko.observableArray([]);

它持有:

self.map.points.push(new google.maps.LatLng(a, b));

我正在尝试使用以下代码从此数组中删除一些元素:

self.points.remove(val.internalMarker.position)

其中 val.internalMarker.position 保存使用与该点相同的值初始化的相同 LatLong 对象。

但由于未知原因,删除函数使数组保持不变。

Here You can check my full code on JSFiddle

最佳答案

你试过这个吗?

self.points.remove(function(pos) {
    return pos.lat() == val.internalMarker.postition.lat()
        && pos.lng() == val.internalMarker.postition.lng();
})

除非要删除的对象是完全相同的对象,否则采用单个参数的 Knockout 的 observableArray.remove 重载将不起作用。在您的问题中,听起来 LatLng 不是同一个确切的对象,只是它包含相同的纬度和经度值。在这些情况下,您必须传递一个函数来比较两个对象实例之间您感兴趣的值。

关于javascript - 无法从 knockout observableArray 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21352428/

相关文章:

javascript - 嵌套(扩展) promise 似乎需要一个全局变量

javascript - 如何在 C# MVC 中将 BBC 的 Imager.Js 用于响应式图像

javascript - 多个 Google 自动完成和地点搜索问题

javascript - Google Maps API V3 - 信息框和循环问题

javascript - 如何使用 Knockout js 和 html 显示 Google map

javascript - 如何在 KnockoutJs 中为此使用绑定(bind)处理程序

javascript - 获取 observableArray 项的子属性以触发更改

javascript - 具有相同类别的每个 div 的随机背景图像

javascript - 停止事件的范围

javascript - fitBounds 调用后增加 map 缩放不起作用