Javascript AngularJS$摘要已在进行中
当我将数据加载到角度表达式中时,出现了一个错误。数据已加载,但错误$digest已在进行中Javascript AngularJS$摘要已在进行中,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,当我将数据加载到角度表达式中时,出现了一个错误。数据已加载,但错误$digest已在进行中 var dom = angular.element($compile(template)($scope)); $scope.$apply(); var html = $('<div>').append(dom).html(); 它删除了错误,但现在数据绑定不起作用。现在输出的是表达式,而不是实际数据。 我还尝试将$scope.$apply放入$timeout函数中,但现在我们只获取表达式,而
var dom = angular.element($compile(template)($scope));
$scope.$apply();
var html = $('<div>').append(dom).html();
它删除了错误,但现在数据绑定不起作用。现在输出的是表达式,而不是实际数据。
我还尝试将$scope.$apply放入$timeout函数中,但现在我们只获取表达式,而不获取数据
此代码在指令中。我只给出了这个代码,因为指令中的其余代码在这里是不相关的。
在仍然使用$timeout的情况下,我需要做什么才能使数据绑定工作
提前谢谢
编辑:我忘记告诉的一个重要部分是,我认为错误是针对两个空表达式的。在chrome调试器中,它们是未定义的。您是否考虑过以更角度兼容的方式实现指令,而不是自己处理$apply 这类错误通常发生在一段代码在特定上下文之外执行时,例如jquery代码
我建议在编写指令时尽量避免使用jQuery。如果需要,考虑使用链接函数。< /P>如果在指令的链接阶段内使用$编译,则不需要作用域。$Apple。您对此有任何plnkr/FIDLE吗?$apply接受函数作为其第一个参数。它将运行该函数,然后调用$digest。为$compile和appenddom语句创建一个函数,并将其传递给$apply,然后填充数据。细节:我正在考虑做一把小提琴。但是这个指令对于我们使用它的谷歌地图来说非常复杂。所以把它拆开,让它在小提琴中工作似乎是一项艰巨的任务。我忘了说代码在承诺中。thenfunction{}好吧,代码在一个link函数中。我们需要在这里使用jQuery。无论如何,我们还没有找到更好的方法。除非你有一种角度分明的方式来写jQuery行,否则我想最好是重新思考和重新设计你的视图和指令,而不是去做一些修改。这可能会有帮助
<b>Name: </b>{{model.project.description}}<br />
<b>Littera: </b>{{model.littera}}<br />
<b>Address: </b>{{model.address}}<br />
if (scope.$$phase) {
scope.$apply();
}