如何使用angular和javascript过滤Gmaps对象上的标记

肖恩·D

这段代码的目的是在gmap上显示标记,但要根据日期对其进行过滤。因此,将仅显示在选定时间内创建的标记。

我正在观察来自名为的外部js脚本的值obj.dateRangeSlider("values")

如下所示;

//this will watch the value coming from the time slider and update $scope.filteredMarks accordingly. This could also be expanded to include the search bar.
$scope.$watch(function () {
    //function returning the value to watch, aka dates selected
    return obj.dateRangeSlider("values");
}, function (newValue, oldValue) {
    //function to do when the value changes
    $scope.filteredMarks = $filter("filter")($scope.marks, function(value, index){
        //filter function to recreate the $scope.filteredMarks with the reduced data
        //this is called for each element of $scope.marks
        if(value.date >= newValue.min && value.date <= newValue.max){
            return true;
        }
        return false;
    });
});

然后将其显示在网页上,如下所示;

<ui-gmap-google-map center='map.center' zoom='map.zoom' ng-init="lat = 'observation_latitude'">

    <ui-gmap-markers models="filteredMarks" coords="'self'" icon="'icon'" fit="true">
    </ui-gmap-markers>

</ui-gmap-google-map>

但是我多次收到此错误;

Error: [$rootScope:infdig] http://errors.angularjs.org/1.2.20/$rootScope/infdig?p0=10&p1=%5B%5B%22fn%3…return%20m%3Da%7D%3B%20newVal%3A%20%5B%5D%3B%20oldVal%3A%20%5B%5D%22%5D%5D
    at Error (native)
    at http://localhost:56499/Scripts/Angular/angular.min.js:6:450
    at k.$digest (http://localhost:56499/Scripts/Angular/angular.min.js:110:38)
    at k.$apply (http://localhost:56499/Scripts/Angular/angular.min.js:112:173)
    at h (http://localhost:56499/Scripts/Angular/angular.min.js:72:454)
    at w (http://localhost:56499/Scripts/Angular/angular.min.js:77:347)
    at XMLHttpRequest.z.onreadystatechange (http://localhost:56499/Scripts/Angular/angular.min.js:78:420)

返程$scope.marks

>     [Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
>     
>     0: Object   
>     date: "2014-11-30T23:21:44.823Z"  
>     id: 11  
>     latitude: -27.46009230397052
>     longitude: 153.0309266845481  
>     __proto__:  Object  
>     Object1:  
>     Object2:  
>     Object3:  
>     __proto__: Array[0]

我对这起因很迷茫,很想知道一个线索。如果有人认为有帮助,我可以提供更多信息。

干杯肖恩

so_jin_ee

看来您的错误来自

return obj.dateRangeSlider("values");

不用在手表内部运行obj.dateRangeSlider(),而是将其带到外面,然后返回保存有对象的变量。更多细节可以在这里看到希望这给了您一些好主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用GMaps JS API在Google Fusion Tables图层上显示标记?

如何让 Gmaps.js 在动态标记 javascript 之间绘制路线?

如何使用 gmaps4rails 在轨道中旋转标记?

如何使用Gmaps.js设置标记的新位置?

如何使用JavaScript过滤复杂的json对象?

如何使用JavaScript对象作为过滤条件?

如何使用Javascript过滤对象数组

如何使用lambda和hasattr过滤嵌套属性上的对象数组?

如何使用动态过滤器过滤javascript对象

如何在 Angular 中过滤对象上的数据

如何使用Javascript映射和过滤JSON

如何使用javascript过滤对象数组中的对象数组?

JavaScript对象分组和过滤

Javascript:如何过滤对象数组和求和结果

如何过滤和计算 javascript 数组中的对象?

如何过滤/搜索列表项和标记

如何在对象属性上使用谓词过滤NSArray

如何使用Javascript对对象进行深度过滤

如何使用javaScript根据数组项过滤对象?

使用javascript过滤对象数组

使用.filter()过滤javascript对象

Gmaps4Rails第2版:如何使用自定义属性删除标记?

如何使用Paperclip将图像上传到Gmaps4rails的标记中?

如何使用html标记从NSString过滤数字?

如何使用调用,应用和绑定在类似于JavaScript的Ruby中强制对象上的方法

如何使用javascript使用值和颜色过滤表

在对象数组和对象的Div上使用过滤器

如何使用angular显示和过滤深度嵌套的JSON

如何使用Karma和Sinon监视Angular过滤器