Въпроси за интервю за AngularJS

Ето списък на концепциите, за които често се пита в интервютата на AngularJS.

  • Какво е AngularJS?
  • Какво представлява контролерът за изглед на модел (MVC)?
  • Двупосочно свързване на данни
  • Какво представлява инжектирането на зависимост и как работи?
  • Какво представлява $ scope в AngularJS?
  • Какво е $ rootScope в AngularJS?
  • Как да приложим маршрутизация в Angular?
  • Обяснете директиви
  • Как можем да създадем персонализирана директива в Angular?
  • Обяснете разликата между сервиза и фабриката
  • Обяснете $ q услуга, отсрочени и обещания

Примерни въпроси и отговори

Въпрос: Избройте директивите в AngularJS?

Отговор: ngBind, ngModel, ngClass, ngApp, ngInit, ngRepeat

Въпрос: Какво представлява $ scope в AngularJS?

Отговор: $ scope в AngularJS е обект, който се отнася до модел на приложение. Това е обект, който свързва изгледа (DOM елемент) с контролера. В контролера данните на модела са достъпни чрез обект $ scope. Както знаем, AngularJS поддържа модела MV *, обектът $ scope става модел на MV *.

Въпрос: Какво представлява SPA (приложение на една страница) в AngularJS?

Отговор: Приложения с една страница (SPA) са уеб приложения, които зареждат една HTML страница и динамично я актуализират, докато потребителят взаимодейства с приложението.

СПА използват AJAX и HTML за създаване на течни и отзивчиви уеб приложения, без постоянно презареждане на страници. Това обаче означава, че голяма част от работата се случва от страна на клиента, в JavaScript.

Единична HTML страница тук означава страница за отговор на потребителския интерфейс от сървъра. Източникът може да бъде ASP, ASP.NET, ASP.NET MVC, JSP и така нататък.

Уеб приложение с една страница обаче се доставя като една страница на браузъра и обикновено не изисква страницата да се презарежда, докато потребителят се придвижва до различни части на приложението. Това води до по-бърза навигация, по-ефективни мрежови трансфери и по-добра цялостна производителност за крайния потребител.

Въпрос: Какво представлява маршрутизирането в AngularJS?

Отговор: Маршрутизирането е основна характеристика на AngularJS. Тази функция е полезна при изграждането на SPA (приложения с една страница) с множество изгледи. В SPA всички изгледи са различни HTML файлове и ние използваме Routing за зареждане на различни части на приложението. Полезно е да разделите приложението логично и да го направите управляемо. С други думи, маршрутизирането ни помага да разделим нашето приложение на логически изгледи и да ги обвържем с различни контролери.

Въпрос: Обяснете директивата ng-repeat.

Отговор: Директивата ng-repeat е най-използваната функция на AngularJS Директива. Той итерира върху колекция от елементи и създава DOM елементи. Той постоянно следи източника на данни, за да изобрази отново шаблон в отговор на промяната.

Въпрос: Каква е разликата между ng-If и ng-show / ng-hide.

Отговор: Директивата ng-If рендира DOM елемента само ако условието е вярно. Докато директивата ng-show / ng-hide изобразява DOM елемента, но променя класа на ng-hide / ng-show, за да поддържа видимостта на елемента на страницата.

Въпрос: Как да отмените таймаут с AngularJs?

Отговор: $ timeout е обвивката на AngularJs за window.setTimeout, анулирате времето за изчакване, като приложите функцията:

$timeout.cancel(function (){ // write your code. });

Въпрос: Какво представлява инжектирането на зависимост?

Отговор: Dependency Injection (DI) е модел на софтуерно проектиране, който се занимава с това как компонентите се запознават със своите зависимости.

Инжекторната подсистема AngularJS отговаря за създаването на компоненти, разрешаването на техните зависимости и предоставянето им на други компоненти, както е поискано.

Въпрос: Обяснете директивата ng-App.

Отговор: Директивата ng-app стартира приложението AngularJS. Той определя основния елемент. Той автоматично инициализира или зарежда приложението, когато се зарежда уеб страница, съдържаща приложението AngularJS. Също така се използва за зареждане на различни модули AngularJS в приложенията AngularJS.

Въпрос: Обяснете директивата ng-init

Отговор: Директивата ng-init инициализира данните на приложението AngularJS. Използва се за поставяне на стойности към променливите, които ще се използват в приложението.

Например, в кода по-долу сме инициализирали масив от страни, използвайки синтаксис JSON, за да дефинираме масива от държави.

 ... 

Въпрос: Как споделяте данни между контролерите?

Отговор: Създайте услуга AngularJS, която ще съхранява данните и ще ги инжектира вътре в контролерите. Използването на услуга е най-чистият, бърз и лесен начин за тестване.

Има обаче няколко други начина за прилагане на споделяне на данни между контролери, като:

  • Използване на събития
  • Използване на $ parent, nextSibling, controllerAs и т.н. за директен достъп до контролерите
  • Използване на $ rootScope за добавяне на данни за (не е добра практика)

Въпрос: Каква е разликата между директивите ng-if и ng-show / hide?

Отговор: ng-if ще създаде и покаже елемента DOM само когато състоянието му е вярно. Ако условието е невярно или се промени на false, то няма да създаде или унищожи създаденото.

ng-show / hide винаги ще генерира DOM елемента, но ще приложи свойството CSS display въз основа на оценката на състоянието.

Повече информация за AngularJS:

  • Angular срещу AngularJS
  • Най-добрите уроци за Angular и AngularJS