Skip to content

Instantly share code, notes, and snippets.

@xto3na
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xto3na/7a6c5f352181c7499944 to your computer and use it in GitHub Desktop.
Save xto3na/7a6c5f352181c7499944 to your computer and use it in GitHub Desktop.
- Модуль — контейнер, который хранит в себе компоненты, решающие одну или несколько задач.
- Сервис — компонент, который хранит в себе переиспользуемый код или объект и позволяет выделять общую логику для работы других компонентов. Это могут быть операции над объектом, хранилища данных, кэш и пр.
- Директива — компонент, который представляет собой переиспользуемый виджет или специфичный код для работы с 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