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

标签 javascript html angularjs dom

假设我正在 angularjs 中创建一个动态指令。我想使用 link 函数根据参数来操作模板 html 的 DOM。

所以在普通的 javascript 中,我会做如下的事情:

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

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

但是,我计划进行大量修改,因此将其视为字符串很快就会变得过于困惑,并且如果我这样做的话将无法维护。如果可能的话,我想像在常规 js 中处理页面 DOM 一样对待它。

我也愿意没有模板,只是在链接函数中动态生成整个内容,如果我有可能以某种方式获得返回此的指令

最佳答案

可以在 link function 中修改编译元素。此时,如果不重新编译,则无法将任何绑定(bind)或指令添加到元素中。

...
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(...);
}

关于javascript - 在AngularJS中,当制作指令时,有没有办法使用链接函数来操作模板的DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38557350/

相关文章:

javascript - phonegap 使用 moveTo 重命名文件

javascript - 如何将自定义指令绑定(bind)到所有输入元素?

添加/删除元素时,angularjs ng-repeat列表未更新

javascript - localstorage 数据可以放在 HTTP header 中吗?

javascript - Jquery click 函数只被调用一次

javascript - Angular UI 网格 : notify user that sort may take a while

javascript - 如何在第一个 tr 的特定 td 上应用 css

javascript - 当状态数据发生变化时,如何更改平面列表中文本的颜色

javascript - 暂停 Controller 并等待服务响应

html - 设置输入文本和输入提交在同一高度的问题