小编典典

AngularJS:AngularJS 渲染模板后如何运行附加代码?

all

我在 DOM 中有一个 Angular 模板。当我的控制器从服务中获取新数据时,它会更新 $scope 中的模型,并重新渲染模板。到目前为止一切都很好。

问题是在模板被重新渲染并且在 DOM 中(在本例中为 jQuery 插件)之后,我还需要做一些额外的工作。

似乎应该有一个事件要听,比如 AfterRender,但我找不到任何这样的东西。也许指令会是一种方法,但它似乎也太早了。

这是一个概述我的问题的 jsFiddle:Fiddle-
AngularIssue

== 更新 ==

基于有用的评论,我相应地切换到一个指令来处理 DOM 操作,并在指令中实现了一个模型 $watch。但是,我仍然有同样的基本问题;$watch
事件内部的代码在模板被编译并插入 DOM 之前触发,因此,jquery 插件总是在评估一个空表。

有趣的是,如果我删除异步调用,整个事情就可以正常工作,所以这是朝着正确方向迈出的一步。

这是我更新的小提琴以反映这些变化:http:
//jsfiddle.net/uNREn/12/


阅读 165

收藏
2022-08-01

共1个答案

小编典典

这篇文章很旧,但我将您的代码更改为:

scope.$watch("assignments", function (value) {//I change here
  var val = value || null;            
  if (val)
    element.dataTable({"bDestroy": true});
  });
}

jsfiddle

希望对你有帮助

2022-08-01