Last active
August 29, 2015 14:23
-
-
Save xto3na/7a6c5f352181c7499944 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Модуль — контейнер, который хранит в себе компоненты, решающие одну или несколько задач. | |
- Сервис — компонент, который хранит в себе переиспользуемый код или объект и позволяет выделять общую логику для работы других компонентов. Это могут быть операции над объектом, хранилища данных, кэш и пр. | |
- Директива — компонент, который представляет собой переиспользуемый виджет или специфичный код для работы с DOM-деревом браузера и стилями. | |
- Контроллер — компонент, содержащий специфичную логику (в т.ч. и UI логику) для работы конкретной страницы или ее части. | |
1) Когда работаешь со $scope, НЕ НАДО использовать alias(псевдонимы контроллеров) в разметке, потому что так не работает. | |
2) Атрибут ng-cloak используется для того чтобы не показывать фигурные скобки(до подгрузки данных). | |
Пример: | |
<span ng-cloak>{{model.data}}</span> | |
3) Для удаления или добавления элемента в DOM в зависимости от определенного условия, значение которого может определятся привязкой данных следует использовать директиву ng-if. Эта директива в отличии от ng-show & ng-hide директив не скрывает видимость элемента а попросту удаляет или добавляет его в DOM. | |
4) Для валидации в AngularJS существует несколько переменных: | |
$pristine возвращает true если пользователь не взаимодействовал с элементом | |
$dirty возвращает true если пользователь взаимодействовал с элементом | |
$valid возвращает true если форма и ее элементы валидны | |
$invalid возвращает true если форма не валидна | |
$error содержит информацию об ошибках валидации | |
5) при обработке событий в функцию обработки обязательно передавать аргументом переменную $event ng-mouseenter="myHandler($event)" | |
ng-blur - Дает возможность AngularJS обработать событие blur которое срабатывает когда элемент теряет фокус | |
ng-change - Дает возможность AngularJS обработать событие change которое срабатывает когда в элементе формы меняется значение | |
ng-click - Дает возможность AngularJS обработать событие click которое срабатывает когда выполняется клик на элементе | |
ng-copy - Дает возможность AngularJS обработать событие copy которое срабатывает при копировании | |
ng-cut - Дает возможность AngularJS обработать событие cut которое срабатывает при вырезании | |
ng-paste - Дает возможность AngularJS обработать событие paste которое срабатывает при вставке | |
ng-dblclick - Дает возможность AngularJS обработать событие dblclick которое срабатывает при двойном клике по элементу | |
ng-focus - Дает возможность AngularJS обработать событие focus которое срабатывает когда элемент получает фокус | |
ng-keydown - Дает возможность AngularJS обработать событие keydown которое срабатывает когда клавиша опущена | |
ng-keypress - Дает возможность AngularJS обработать событие keypress которое срабатывает после keydown | |
ng-keyup - Дает возможность AngularJS обработать событие keyup которое срабатывает когда клавиша отпущена | |
ng-mousedown - Дает возможность AngularJS обработать событие mouse-down которое срабатывает когда кнопка мыши нажата | |
ng-mouseenter - Дает возможность AngularJS обработать событие mouse-enter которое срабатывает когда курсор попадает в определенную область | |
ng-mouseleave - Дает возможность AngularJS обработать событие mouse-leave которое срабатывает когда курсор покидает область | |
ng-mousemove - Дает возможность AngularJS обработать событие mouse-move которое срабатывает когда двигается курсор | |
ng-mouseup - Дает возможность AngularJS обработать событие mouse-up которое срабатывает когда клавиша мыши отпущена | |
ng-submit - Дает возможность AngularJS обработать событие submit которое срабатывает когда в элементе form была нажата кнопка Submit | |
6) Можно использовать профилирование(это чистый JS) console.profile(); и console.profileEnd(); | |
а так же console.time(); console.timeEnd(); | |
7) Для анимаций и обработки событий ЛУЧШЕ(более производительно использовать jQuery, чем Angular)!!! | |
8) Лучше использовать ng-if, а не ng-show, ng-hide для производительности, так как он удаляет элемент из DOM дерева, а не скрывает. | |
9) One-time binding {{::myVariable}} выводит данные один раз(не следит за изменениями). | |
10) При работе с тегом form ему нужно задавать атрибут novalidate, что бы Angular мог валлидировать своими средствами. И не забывать про name у этого же тега. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment