这个 angular 指令可以改进吗?

Can this angular directive be Improved?

我创建了一个浮动标签指令,它获取现有占位符的值并将其放入用作浮动标签的 div 元素中。然后删除占位符属性并隐藏 label 标记。该指令工作正常,但我担心它如何操纵 DOM。我想知道是否有更好(更清洁)的方法来: 1)管理浮动标签div元素的模板:

  var template = '<div class="floating-label">{{ placeholder }}</div>';

  //append floating label template
  $element.after($compile(template)($scope));

2) 通过 for 属性(与输入关联的那个)找到 label 标签:

document.querySelector('label[for="' +  $scope.id +  '"]').style.display = 'none';

需要注意的是使用了jqLit​​e。 (没有jQuery)

plunker 与指令

看起来不错,只是一些评论:

  • 我会放弃隔离作用域,只使用 attrs 参数;消除了对 $compile 服务的需求。
  • 不需要 ngModel
  • 考虑删除该节点。 (我可以选择任何一种方式)
  • reference my changes