一尘不染

如何通过jQuery的.append()添加DOM元素(Angular指令)?

angularjs

是否有任何方法可以使用jQuery方法添加作为Angular指令的元素,append()并让Angular进行其编译/链接以使其正常工作,就像您首先将指令包括在内一样?

例:

app.directive('myAngularDirective', [function () {
    ...
    // Lots of stuff in here; works when used normally but not when added via jQuery
});

$("body").append("<my-angular-directive />");

目前,它只是附加了一个空的DOM元素,称为“ my-angular-directive”,但Angular不会发挥作用并发挥作用。


阅读 211

收藏
2020-07-04

共1个答案

一尘不染

正确的方法是使用:$
compile,
并在指令返回的情况下:(directive definition object这是推荐的方法)然后可以link在其上调用函数(scope例如,注入)。

$('body').append($compile("<my-angular-directive />")(scope));
scope.$apply();
2020-07-04