当我将数据加载到角度表达式时,我收到错误。数据已加载,但我收到错误$ digest正在进行中。
var dom = angular.element($compile(template)($scope));
$scope.$apply();
var html = $('<div>').append(dom).html();
我会在这里给你一小部分模板:
<b>Name: </b>{{model.project.description}}<br />
<b>Littera: </b>{{model.littera}}<br />
<b>Address: </b>{{model.address}}<br />
现在我尝试将$ scope。$ apply()包装到if语句中,如下所示。但我听说这是一个不好的方法。无论如何我都没关系,因为它无论如何都没有用。
if (scope.$$phase) {
scope.$apply();
}
它删除了错误,但现在数据绑定无法正常工作。现在输出是表达式而不是实际数据。 我也尝试将$ scope。$ apply()放入$ timeout函数,但是现在我们只得到表达式而不是数据。
此代码在指令范围内。我只给了你这个代码,因为这里的代码中的其余代码与此无关。 在使用$ timeout时,我需要做些什么来使数据绑定工作?
提前致谢。
编辑:我忘记告诉的一个重要部分是我认为错误是针对2个空表达式。在chrome调试器中,它们未定义。
答案 0 :(得分:0)
您是否考虑过以更加角度兼容的方式实施您的指令,而不是自己处理$ apply?
当一段代码在角度上下文之外执行时,通常会出现这种错误,例如,jquery代码。
我建议尽可能避免使用jQuery编写指令。如果需要,请考虑使用链接功能。