Angular zapewnia nam mechanizm pisania dyrektyw - który jest niezwykle potężny w tym, co potrafi. Zastanawiam się jednak, w jakim scenariuszu faktycznie piszesz własną dyrektywę.Kiedy napisać dyrektywę?
Wciąż widzimy pytania w Stack Overflow i wokół nich, z różnymi ludźmi próbującymi pisać dyrektywy, które (moim zdaniem) nie muszą być napisane w pierwszej kolejności. W większości przypadków można je rozwiązać za pomocą kombinacji powtarzania, przełączania i pokazywania. Zobacz przykłady pytań zawierających dyrektywy, które moim zdaniem nie powinny być dyrektywami w pierwszej kolejności!
https://stackoverflow.com/questions/16101073/angularjs-directive-is-not-working-in-ie-10
Fire button click in AngularJS
angularjs: using a directive inside the ui-bootstrap modal
niektórych scenariuszach przykładach. W każdym razie ich nie wybieram, ponieważ jestem pewien, że nikomu nie jest jasne, kiedy powinniśmy używać/pisać dyrektywę.
Widzimy scenariusze, w których ludzie używają dyrektyw jako mechanizmu szablonowego. Czy to właściwy sposób robienia rzeczy? Czy jest jakiś lepszy sposób? (ng-include maybe?) Czy są jakieś zaległości/wady stosowania dyrektyw jako mechanizmu szablonowego? Powodem tego pytania jest to, że czasami zastanawiam się, czy ludzie piszą dyrektywy, ponieważ pochodząc ze świata jquery, pierwszą rzeczą, o której mogą myśleć jest pisanie kodu manipulującego DOMem, a ponieważ metoda Angulara nie polega na manipulowaniu DOM w kontrolerach, wszystko to grawituje w kierunku pisania cały ten kod w dyrektywie.
EDIT:
Wierzę tego zamieszania (od wtykając rzeczy wewnątrz dyrektywy) pojawia się, ponieważ kątowe nie posiada osobnego pojęcia „Widok” - w przeciwieństwie szkieletowe (który ma tylko „widok”, ale bez komponentu!). Dyrektywy są niesamowite w definiowaniu komponentów - ale myślę, że jeśli użyjesz ich do stworzenia "widoków", stracisz część "kątowej" drogi. Takie jest moje zdanie - dlatego szukam odpowiedzi na pytanie pozostałych członków społeczności kanciastej.
Dobrą rzeczą w przypadku prostszych dyrektyw (dyrektyw, które robią tylko jedno!) Jest to, że są one absolutnie łatwe do przetestowania. Jeśli spojrzysz na wszystkie dyrektywy, wszyscy robią jedno i robią to całkiem dobrze.
Jaki jest najlepszy sposób definiowania wielokrotnych użytecznych "widoków" (nie komponentów!) W Angular? Czy powinno to być zapisane w dyrektywie? Czy jest jakiś lepszy sposób?
Byłoby wspaniale, gdyby jeden z Angular Dev's miał opinię w tej sprawie!
jak tylko chcesz manipulować DOM, musisz napisać dyrektywę. Kontrolery nie powinny mieć w sobie ani jednej manipulacji. Ale dyrektywa może mieć w sobie kontrolerów. – mpm
Dyrektywy kontrolerów są z innych powodów. Te kontrolery i normalne sterowniki są różne. – ganaraj