AngularJS:无法在指令中获取动态元素的innerHTML

时间:2017-01-04 06:30:17

标签: angularjs angularjs-directive

我正在指令中尝试获取动态内容形式的元素的innerHTML

以下是 Plunker

https://plnkr.co/edit/rXVin1LPWzpH4eMqZc7R?p=preview

绿色中的那个是预期结果。 red 中的那个是我希望工作的部分。

关于console.log结果的通知,el.innerHTML的结果为{{ item }}。为什么不能获得绑定它的文本?我如何让它工作?

1 个答案:

答案 0 :(得分:4)

这是因为Angular尚未完成ng-repeat处理子模板的处理。

您可以扭曲scope.$evalAsync中的代码以使其正常工作:

link: function(scope, element, attr, content) {

  scope.$evalAsync(function() {

    var el = element[0];

    // Code
  });
}

有关$evalAsync vs $timeout的更多信息:https://stackoverflow.com/a/17303759/2887841