来自ng-map和ng-repeat的自定义标记在仍然正常工作的同时给出了$ digest循环错误

时间:2016-03-07 13:19:23

标签: angularjs google-maps-api-3 angular-google-maps angular-digest ng-map

我目前使用this在地图上获取自定义标记。

我在plunker上没有错误地工作,但在我自己的网站上没有错误(即使我使用相同的脚本src链接)

在我自己的页面上ng-repeat工作,但是它给出了2个非常长的错误,告诉我一个$ digest循环 error

这是我的清单:

$scope.list = [{ name: 'test', pos: [41, -87] }, { name: 'test2', pos: [40, -86] }];

这就是HTML:

<ng-map zoom-to-include-markers="auto" style="height:200px;width:400px;">
    <marker ng-repeat="item in list" position="{{item.pos}}"></marker>
</ng-map>

上述内容并未给出错误,但

<ng-map zoom-to-include-markers="auto" style="height:200px;width:400px;">
    <custom-marker ng-repeat="item in list" position="{{item.pos}}">
        <div style="background-color:white;border: 1px solid black;">this is a test</div>
    </custom-marker>
</ng-map>

一样。每次我将一个项目添加到列表中时,它还会给我2个额外的错误,但它仍能正常工作。

我不知道为什么它适用于plunker但不适用于我自己的网站,我使用相同的版本使用ASP.NET 5提供服务。在我自己的网站上也使用ng-animate,ng-resource和一堆与角度无关的东西,但这不重要。 (我希望)

如果你需要它,我的控制器正在使用这些:

function ($scope, $rootScope, restData, NgMap) {

和app模块正在使用:

var app = angular.module('app', ['ngResource', 'ngMap'])

1 个答案:

答案 0 :(得分:0)

自己修正了。

在我提出这个问题之前,我尝试使用this来解决我的问题,但我可能已经忘记了它的一部分,因为它第二次尝试时它会起作用。

您需要使用

$scope.positions = angular.copy(data) 

并绑定在单独的位置&#39;变量并复制它,如果你想重新绑定,你不能直接从数据本身的前端绑定。