2015-03-24 80 views
0

我創建了一個浮動標籤指令,它獲取現有佔位符的值並將其放入一個用作浮動標籤的div元素中。佔位符屬性然後被刪除並且標籤標籤被隱藏。該指令工作正常,但我關心它如何操縱DOM。我不知道是否有一個更好的(清潔劑)的方式: 1)管理的浮動標籤的div元素的模板:這個角度指令可以改進嗎?

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

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

2)找到了與相關for屬性(一個標籤標籤輸入):

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

應該指出,使用jqLit​​e。 (無jQuery的)

plunker該指令

+0

你爲什麼不使用transclusion? – Claies 2015-03-24 23:42:47

+0

此外,這種問題更適合於[代碼評論](http://codereview.stackexchange.com/)網站,我相信,因爲實際上並沒有一個問題需要解決。 – GregL 2015-03-24 23:44:51

+0

什麼將transclusion改善? – user2814599 2015-03-24 23:47:11

回答

1

看起來不錯,短短評論:

  • 我將放棄孤立的範圍,只使用attrs參數;消除了$ compile服務的需要。
  • 不需要ngModel
  • 考慮刪除節點。 (我可以繼續這樣無論哪種方式)
  • reference my changes
+0

接受它,因爲它有有效的點。我不會刪除標籤標籤,因爲它是一種輔助功能,如下所述:http://www.coolfields.co.uk/2011/04/accessible-forms-should-every-input-have-a-label/ – user2814599 2015-03-25 08:44:41

+0

哦,好點。我總是遇到503的麻煩。 – 2015-03-25 14:19:02