来自 ng-map 和 ng-repeat 的自定义标记在仍然正常工作的同时给我 $digest 循环错误
custom-marker from ng-map with ng-repeat gives me $digest loop errors while still working properly
我目前使用 this 在地图上获取自定义标记。
我在 plunker 上运行时没有错误,但在我自己的网站上却没有(即使我使用相同的脚本 src 链接)
在我自己的页面上,ng-repeat 有效,但它给出了 2 个很长的错误,通知我有关 $digest 循环
这是我的清单:
$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 和一堆与 angular 无关的东西,但这应该无关紧要。 (我希望)
如果你需要它,我的控制器正在使用这些:
function ($scope, $rootScope, restData, NgMap) {
应用模块正在使用这个:
var app = angular.module('app', ['ngResource', 'ngMap'])
我自己修好了。
我在问这个问题之前尝试使用 this 来解决我的问题,但我可能忘记了其中的一部分,因为它在我第二次尝试时有效。
您需要使用
$scope.positions = angular.copy(data)
并绑定到那个单独的 'positions' 变量,如果你想重新绑定,就复制它,你不能直接从前端绑定到数据本身。
我目前使用 this 在地图上获取自定义标记。
我在 plunker 上运行时没有错误,但在我自己的网站上却没有(即使我使用相同的脚本 src 链接)
在我自己的页面上,ng-repeat 有效,但它给出了 2 个很长的错误,通知我有关 $digest 循环
这是我的清单:
$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 和一堆与 angular 无关的东西,但这应该无关紧要。 (我希望)
如果你需要它,我的控制器正在使用这些:
function ($scope, $rootScope, restData, NgMap) {
应用模块正在使用这个:
var app = angular.module('app', ['ngResource', 'ngMap'])
我自己修好了。
我在问这个问题之前尝试使用 this 来解决我的问题,但我可能忘记了其中的一部分,因为它在我第二次尝试时有效。
您需要使用
$scope.positions = angular.copy(data)
并绑定到那个单独的 'positions' 变量,如果你想重新绑定,就复制它,你不能直接从前端绑定到数据本身。