1

我想将$compile一段包含多个指令的 html 转换成一个字符串并将其发送到服务器。由于某些指令包含 a templateUrl,因此返回的链接函数会延迟。在这个问题(AngularJS: Using $compile on html that contains directive with templateurl)中,问题似乎已解决$scope.$digest(),这在我的情况下是不可能的(已经在进行中)。

我发现的唯一解决方案是使用超时,请参阅http://plnkr.co/edit/k3ZAYy1FhGUFXxXyrPvB?p=preview

有没有更好的方法来等待延迟链接功能完成?

4

1 回答 1

0

在你的 runURL 函数中,使用 $apply 像:

this.runUrl = function() {
    var scope = $rootScope.$new();
    var html = '<template-url-directive></template-url-directive>';
    var compiled = $compile(html);
    var el = compiled(scope);
    scope.$apply();
    this.result = el[0].outerHTML;
  };

这可以将范围与模板绑定。请检查已编辑的plunk。

于 2015-05-04T11:20:31.213 回答