首页 文章

AngularJS $摘要已在进行中

提问于
浏览
1

当我将数据加载到角度表达式时,我收到错误 . 数据加载,但我得到错误$ digest已在进行中 .

var dom = angular.element($compile(template)($scope));
$scope.$apply();
var html = $('<div>').append(dom).html();

我会在这里给你一小部分模板:

<b>Name: </b>{{model.project.description}}
<b>Littera: </b>{{model.littera}}
<b>Address: </b>{{model.address}}

现在我尝试将$ scope . $ apply()包装到if语句中,如下所示 . 但我听说这是一个不好的方法 . 无论如何我都没关系,因为它无论如何都没有用 .

if (scope.$$phase) {
     scope.$apply();
}

它删除了错误,但现在数据绑定无法正常工作 . 现在输出是表达式而不是实际数据 . 我也尝试将$ scope . $ apply()放入$ timeout函数,但是现在我们只得到表达式而不是数据 .

此代码在指令中 . 我只给了你这个代码,因为这里的代码中的其余代码与此无关 . 在使用$ timeout时,我需要做什么才能使数据绑定工作?

提前致谢 .

EDIT: 我忘记告诉的一个重要部分是我认为错误是针对2个空表达式 . 在chrome调试器中,它们未定义 .

1 回答

  • 0

    您是否考虑过以更加角度兼容的方式实现您的指令,而不是自己处理$ apply?

    当在角度上下文之外执行一段代码时,通常会出现这种错误,例如,jquery代码 .

    我建议尽可能避免使用jQuery来编写你的指令 . 如果需要,请考虑使用链接功能 .

相关问题