我在从可观察数组中删除对象时遇到问题。
声明:
self.points = ko.observableArray([]);
它持有:
self.map.points.push(new google.maps.LatLng(a, b));
我正在尝试使用以下代码从此数组中删除一些元素:
self.points.remove(val.internalMarker.position)
其中 val.internalMarker.position
保存使用与该点相同的值初始化的相同 LatLong 对象。
但由于未知原因,删除函数使数组保持不变。
最佳答案
你试过这个吗?
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/