gpt4 book ai didi

javascript - 预编译用于 Google map 标记的指令会导致 '$apply already in progress' 错误

转载 作者:行者123 更新时间:2023-11-28 07:22:09 24 4
gpt4 key购买 nike

我正在创建一个与谷歌地图集成的 AngularJS 应用程序。我有一些 html 用作信息弹出窗口。我在应用程序的其他地方使用了类似的 html block ,因此我开始使用指令来创建可重用的组件。

一旦我实现了这一点,我意识到信息弹出窗口需要在创建时使用其 html 进行初始化,而不是在“弹出”时进行初始化。

我研究了如何预编译指令。它与测试指令的 AngularJS 文档非常相似。

var element = angular.element("<my-directive data=data></my-directive>");
var scope = $rootScope.$new();
scope.data = someData;
element = $compile(element)(scope);
scope.$apply();

element.html(); // Gives me the html

这会导致错误'$apply已经在进行中'我知道这意味着摘要循环已经在进行中,但是这个$apply是必要的,因为我需要创建这个预编译模板来传递到我的信息弹出窗口。

我已经研究了 $interpolate 和 $parse,但我认为我不能使用它们,因为我的指令具有需要评估的链接函数。

最佳答案

使用

if (!$scope.$$phase)
$scope.$apply();

关于javascript - 预编译用于 Google map 标记的指令会导致 '$apply already in progress' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com