在angularjs中,在制作指令时,有没有办法使用链接函数来操作模板的DOM?

时间:2016-07-24 22:12:50

标签: javascript html angularjs dom

让我们说我在angularjs中创建了一个动态指令。我想使用链接函数根据参数操作模板html的DOM。

所以在vanilla javascript中,我会做类似以下的事情:

var template = ... //something here that sets the variable to the template
var newdiv = document.createElement("div");
template.appendChild(newdiv);

我找到了一些答案,他们将模板视为字符串,只拼接文字字符串"<div></div>"

但是,我计划进行大量修改,因此将其视为字符串将很快变得混乱,如果我这样做将无法维护。如果可能的话,我想像对待普通js中页面的DOM那样对待它。

我也很开放没有模板,只是在链接函数中动态生成整个东西,如果我可以以某种方式获得指令返回

1 个答案:

答案 0 :(得分:1)

可以在link function中修改已编译的元素。此时不能在没有重新编译的情况下向元素添加任何绑定或指令。

...
link: function (scope, element, attrs) {
  // jqLite element that partly implements jQuery API
  element.append(...);

  // native element that is wrapped with jqLite
  var nativeElement = element[0];
  nativeElement.appendChild(...);
}