是否有任何方法可以使用jQuery方法添加作为Angular指令的元素,append()并让Angular进行其编译/链接以使其正常工作,就像您首先将指令包括在内一样?
append()
例:
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不会发挥作用并发挥作用。
正确的方法是使用:$ compile,并在指令返回的情况下:(directive definition object这是推荐的方法)然后可以link在其上调用函数(scope例如,注入)。
directive definition object
link
scope
$('body').append($compile("<my-angular-directive />")(scope)); scope.$apply();