Angularjs - 将指令动态插入dom元素

时间:2016-08-09 22:27:45

标签: javascript html angularjs dom

我试图相应地设置指令。

所以,让我说我有这样的意见:

<input type="foo" id="myinput" maskvalue> </input>

这适用于我的应用,问题是当我尝试插入&#34; maskvalue&#34;动态使用&#34; setAttribute&#34;它不起作用,这就是我现在正在尝试做的事情:

element = document.getElementById('myinput');
if(element){
  element.setAttribute('maskvalue', "");
}

此代码将成功将我的指令插入dom元素,但不起作用。似乎不可能在dom已经加载时插入自定义指令,我错了吗?

但基本上问题是,如何将指令动态插入dom元素?

由于

1 个答案:

答案 0 :(得分:3)

使用Angular的$compile命令对Angular-ize进行此操作。基本上,您需要通知Angular您已做出改变,以便它可以发挥其魔力。

function MyController($scope, $compile) {
    element = document.getElementById('myinput');
    if (element) {
        element.setAttribute('maskvalue', "");
        $compile(element)($scope);
    }
}

确保在注入了$compile$scope的Angular控制器中执行此操作。