Dlaczego $ element jest dostępny / wprowadzony do kontrolera?

W AngularJS zauważyłem, że kontroler jest wstrzykiwany$element, który jest opakowaniem JQuery / JQLite elementu kontrolowanego przez kontroler. Na przykład:

<body ng-controller="MainCtrl">

Następnie możesz uzyskać dostęp do elementu ciała w kontrolerze poprzez wstrzykiwanie$element

app.controller('MainCtrl', function($scope, $element) { ...

Można to zobaczyć działając naten Plunkr.

I wydaje się być potwierdzone jako celowa funkcja wdocs dla $ compile

Moje pytania to:

W świetle różnych poradników i samouczków, które sugerują, że nie powinieneś mieć dostępu do DOM w kontrolerze, dlaczego jest to możliwe?

Czy jest w tym jakiś niezobowiązujący przypadek użycia?

Czy są jakieś przykłady wykorzystania tego kodu w dostępnym kodzie?

Dzięki.

questionAnswers(4)

yourAnswerToTheQuestion