Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS$摘要已在进行中_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript AngularJS$摘要已在进行中

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函数中,但现在我们只获取表达式,而

当我将数据加载到角度表达式中时,出现了一个错误。数据已加载,但错误$digest已在进行中

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();
}