Javascript 在角度引导后向DOM添加指令

Javascript 在角度引导后向DOM添加指令,javascript,angularjs,Javascript,Angularjs,我试图在Angular启动后向DOM添加一些指令。如果我在run块中这样做,它会完美地工作,但是如果我添加延迟,则不会显示该指令。 看看我的小提琴,你就能明白我的意思: var-app=angular.module(“myApp”,“docsSimpleDirective”); app.run(函数($timeout){ $timeout(函数(){ var container=document.getElementById(“容器”); 变量框=document.createElement(“

我试图在Angular启动后向DOM添加一些指令。如果我在run块中这样做,它会完美地工作,但是如果我添加延迟,则不会显示该指令。 看看我的小提琴,你就能明白我的意思:

var-app=angular.module(“myApp”,“docsSimpleDirective”);
app.run(函数($timeout){
$timeout(函数(){
var container=document.getElementById(“容器”);
变量框=document.createElement(“div”);
box.innerHTML=“”;
容器.附件(盒);
}, 3000);
});
有人能解释一下原因是什么,以及如何解决这个问题吗


谢谢

您将需要手动编译新的HTML,因为如果您在中使用它,您已经完成了解析和呈现

因此,您需要使用范围正确的
$compile
服务

var scope = angular.element(container).scope();
$compile(box)(scope);
演示:

话虽如此,您可以看到,使用
$compile
这种方法,尤其是获得适当的元素范围,代码变得有点笨拙。我建议使用自定义服务/指令来动态注入HTML,运行块不是实现这一点的理想位置

var scope = angular.element(container).scope();
$compile(box)(scope);