linkedin-skill-assessments-quizzes

Angular

П1. Яке призначення декоратора ViewChild в цьому класі компонента?

@Component({
    ...
    template: '<p #bio></p>'
})
export class UserDetailsComponent {
    @ViewChild('bio') bio;
}

DigitalOcean - viewchild-access-component

П2. Який метод використовується для підключення FormControl до нативного DOM елемента input у реактивних формах?

Angular.io - Reactive Form Groups

П3. Яка різниця між paramMap та queryParamMap у класі ActivatedRoute?

StackOverflow

П4. На основі наступного використання async pipe, і припускаючи, що поле класу users є Observable, скільки підписок на Observable users створюється?

<h2>Імена</h2>
<div *ngFor="let user of users | async"></div>
<h2>Вік</h2>
<div *ngFor="let user of users | async"></div>
<h2>Стать</h2>
<div *ngFor="let user of users | async"></div>

UltimateCourses

П5. Як ви можете використовувати HttpClient для надсилання POST запиту до endpoint з функції addOrder у цьому OrderService?

export class OrderService {
  constructor(private httpClient: HttpClient) {}

  addOrder(order: Order) {
    // Відсутній рядок
  }
}

Angular.io - Sending data to server

П6. Для чого використовується метод RouterModule.forRoot?

O’REILLY

П7. Які DOM елементи будуть відповідати цьому селектору метаданих компонента?

@Component({
    selector: 'app-user-card',
    . . .
})

Angular.io - Component Metadata

П8. Який правильний синтаксис шаблону для використання вбудованої структурної директиви ngFor для рендерингу списку productNames?

Angular.io- Structural Directives

П9. Які дві властивості метаданих декоратора компонента використовуються для налаштування CSS стилів для компонента?

Angular.io - Component Styles

П10. З наступним класом компонента, який синтаксис шаблону ви б використали в шаблоні для відображення значення поля класу title?

@Component({
  selector: 'app-title-card',
  template: '',
})
class TitleCardComponent {
  title = 'User Data';
}

Angular.io - String Interpolation or Text Interpolation

П11. Яке призначення методу valueChanges на FormControl?

Angular.io - Displaying a from control value

П12. Яка директива використовується для прив’язки тегу <a> до маршрутизації?

Angular.io - RouterLink

П13. Для чого використовується декоратор Output у цьому класі компонента?

@Component({
    selector: 'app-shopping-cart',
    . . .
})
export class ShoppingCartComponent {
    @Output() itemTotalChanged = new EventEmitter();
}

Angular.io - Sending data to parent component

П14. Яка різниця між цими двома прикладами розмітки для умовної обробки відображення?

<div *ngIf="isVisible">Активний</div>
<div [hidden]="!isVisible">Активний</div>

StackOverflow

П15. Як ви можете вимкнути кнопку submit, коли форма має помилки в цьому прикладі шаблонних форм?

<form #userForm="ngForm">
  <input type="text" ngModel name="firstName" required />
  <input type="text" ngModel name="lastName" required />
  <button (click)="submit(userForm.value)">Зберегти</button>
</form>

Angular.io - Submit the form with ngSubmit

П16. Ви хочете побачити, які файли будуть створені під час створення нового компонента contact-card. Яку команду ви б використали?

Angular.io - ng generate options

П17. На основі наступного компонента, який синтаксис шаблону ви б використали для прив’язки поля titleText компонента TitleCardComponent до властивості title елемента h1?

@Component({
  selector: 'app-title-card',
  template: '<h1 title="User Data"> </h1>',
})
export class TitleCardComponent {
  titleText = 'User Data';
}

Angular.io - String Interpolation

П18. Що таке хуки життєвого циклу Angular?

Angular.io - Lifecycle hooks

П19. Виберіть найкращий опис для цього коду синтаксису шаблону:

<span>Керівник:  </span>

StackOverflow

П20. Як би ви налаштували визначення маршруту для UserDetailComponent, який підтримує шлях URL user/23 (де 23 представляє id запитуваного користувача)?

CodeCraft - Parameterised Routes

П21. Що роблять декоратори HostListener і декоратор HostBinding у цій директиві?

@Directive({
  selector: '[appCallout]',
})
export class CalloutDirective {
  @HostBinding('style.font-weight') fontWeight = 'normal';

  @HostListener('mouseenter')
  onMouseEnter() {
    this.fontWeight = 'bold';
  }

  @HostListener('mouseleave')
  onMouseLeave() {
    this.fontWeight = 'normal';
  }
}

DigitalOcean

П22. Який синтаксис шаблону Angular ви можете використовувати в цьому полі шаблонної форми для доступу до значення поля та перевірки валідації в розмітці шаблону?

<input type="text" ngModel name="firstName" required minlength="4" />
<span *ngIf="">Невірні дані поля</span>
  1. Angular.io -Show and hide validation error
  2. Medium

П23. Який тип значення буде збережено в змінній посилання на шаблон headerText у цій розмітці?

<h1 #headerText>Список користувачів</h1>

Pluralsight - Template reference variable

П24. Яка різниця, якщо вона є, у результуючій логіці коду на основі цих двох конфігурацій провайдера?

[{ provide: FormattedLogger, useClass: Logger }][{ provide: FormattedLogger, useExisting: Logger }];
  1. Angular.io - Dependency Providers
  2. TektutorialHub

П25. Яке призначення властивості data (яка видна в прикладі нижче) в конфігурації маршруту?

   {
       path: 'customers',
       component: CustomerListComponent,
       data: { accountSection: true }
   }
  1. TektutorialsHub
  2. StackOverflow

П26. Як вбудована структурна директива ngIf змінює відрендерений DOM на основі цього синтаксису шаблону?

@Component({
  selector: 'app-product',
  template: '<div *ngIf="product"></div>',
})
export class ProductComponent {
  @Input() product;
}

Reference (angular.io)

П27. Що робить цей код?

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule],
  bootstrap: [AppComponent],
})
export class AppModule {}

platformBrowserDynamic().bootstrapModule(AppModule);

Angular.io - The basic NgModule

П28. Який варіант найкраще описує, що робить властивість resolve в цій конфігурації маршруту?

{
   path: ':id',
   component: UserComponent,
   resolve: {
     user: UserResolverService
   }
}

angular.io

П29. Яке призначення декоратора ContentChildren у цьому класі компонента?

@Component({
 . . .
 template: '<ng-content></ng-content>'
})
export class TabsListComponent {
 @ContentChildren(TabComponent) tabs;
}

betterprogramming.pub

П30. Щоб Angular міг обробляти компоненти в додатку, де потрібно зареєструвати типи компонентів?

angular.io

П31. Яке призначення виклику fixture.detectChanges() у цьому модульному тесті?

TestBed.configureTestingModule({
  declarations: [UserCardComponent],
});
let fixture = TestBed.createComponent(UserCardComponent);

fixture.detectChanges();

expect(fixture.nativeElement.querySelector('h1').textContent).toContain(
  fixture.componentInstance.title,
);

angular.io

П32. Як буде виглядати сегмент URL на основі наступного виклику методу Router.navigate, коли goToUser передається значення 15?

export class ToolsComponent {
  constructor(private router: Router) {}
  goToUser(id: number) {
    this.router.navigate(['user', id]);
  }
}

angular.io

П33. Коли сервіс надається для root і також додається до конфігурації провайдерів для ледачо завантаженого модуля, який екземпляр цього сервісу інжектор надає конструкторам у ледачо завантаженому модулі?

П34. Що робить декоратор HostBinding у цій директиві?

@Directive({
  selector: ' [appHighlight] ',
})
export class HighlightDirective {
  @HostBinding('class.highlighted') highlight = true;
}

StackOverflow

П35. У реактивних формах, який тип класу форми Angular використовується на нативному DOM елементі <form> для його підключення?

П36. Припускаючи, що FormControl username був налаштований з валідатором minLength, як ви можете налаштувати відображення помилки в наступній розмітці реактивних форм для поля username?

<form [formGroup]="form">
  <input type="text" formControlName="username" />
  ...
</form>

Codecraft

П37. Як емульований режим інкапсуляції view обробляє CSS для компонента?

Angular.io

П38. З наступним налаштуванням TestBed, що можна використовувати для доступу до відрендереного DOM для UserCardComponent?

TestBed.configureTestingModule({
  declarations: [UserCardComponent],
});
let fixture = TestBed.createComponent(UserCardComponent);
  1. StackOverflow
  2. Angular.io

П39. Враховуючи ці два компоненти, що буде відрендерено в DOM на основі використання розмітки?

@Component({
 selector: 'app-card',
 template: '<h1>Карта даних</h1><ng-content></ng-content>'
})
export class CardComponent { }

@Component({
 selector: 'app-bio',
 template: '<ng-content></ng-content>.
})
export class BioComponent { }

// використання розмітки:
<app-card><app-bio>Існує вже чотири роки.</app-bio></app-card>

П40. Враховуючи компонент app-title-card у коді нижче, який DOM буде рендерити компонент app-user-card?

@Component({
   selector: 'app-user-card',
   template: '<app-title-card></app-title-card><p>Дженні Сміт</p>'
})

@Component({
   selector: 'app-title-card',
   template: '<h1>Дані користувача</h1>'
})

// використання компонента user card в HTML батьківського компонента
<app-user-card></app-user-card>

П41. Виберіть відповідний код для реєстрації користувацького провайдера, який шукає декоратор @Inject():

constructor(@Inject('Logger') private logger) { }
  1. StackOverflow
  2. TektutorialHub
  3. Angular.io - Dependency Injection In Action

П42. Який варіант найкраще описує наступне використання методу HttpClient.get у методі класу getsettings?

export class SettingsService {
    constructor(private httpClient: HttpClient) { }
    ...

getSettings()
{
    return this.httpClient.get<Settings>(this.settingsUrl)
        .pipe(
            retry(3)
        );
}}
  1. learnrxjs.io
  2. dev.to

П43. Коли сервіс вимагає деякого налаштування для ініціалізації його стану за замовчуванням через метод, як ви можете переконатися, що цей метод викликається перед тим, як сервіс впроваджується будь-куди?

  1. Angular.io
  2. Stackoverflow

П44. Яке твердження найкраще описує це використання TestBed?

const spy = jasmine.createSpyObj('DataService', ['getUsersFromApi']);
TestBed.configureTestingModule({
  providers: [UserService, { provide: DataService, useValue: spy }],
});
const userService = TestBed.get(UserService);

П45. Яка основна різниця між компонентом і директивою?

StackOverflow

П46. Що ви можете додати до цього класу директиви, щоб дозволити встановлення довжини обрізання під час використання директиви в розмітці?

@Directive({
    selector: '[appTruncate]'
})
export class TruncateDirective {
    . . .
}

// приклад бажаного використання:
<p [appTruncate]="10">Якийсь дуже довгий текст тут</p>
  1. Angular.io
  2. StackOverflow

П47. Як ви можете передати параметри запиту до цього запиту HttpClient.get?

export class OrderService {
  constructor(private httpClient: HttpClient) {}

  getOrdersByYear(year: number): Observable<Order[]> {
    return this.httpClient.get<Order[]>(this.ordersUrl);
  }
}
  1. StackOverflow
  2. TektutorialHub

П48. Припускаючи, що DataService був зареєстрований у провайдерах для додатку, яка відповідь найкраще описує, що відбувається на основі конструктора цього компонента?

@Component({
    ...
})
export class OrderHistoryComponent {
    constructor(private dataService: DataService) {}
    ...
}
  1. StackOverflow
  2. Angular.io - Dependency Injection

П49. Завершіть цю розмітку, використовуючи директиву ngIf для реалізації випадку else, який відобразить текст “Користувач неактивний”:

<div *ngIf="userIsActive; else inactive">Наразі активний!</div>

Angular.io

П50. Який правильний синтаксис для визначення маршруту для ледачого завантаження функціонального модуля?

Angular.io - Lazy Loading Modules

П51. Опишіть, як налаштована та конфігурована валідація в цьому прикладі реактивних форм:

export class UserFormControl implements OnInit {
    ...
    ngOnInit() {
        this.form = this.formBuilder.group({
            username: this.formBuilder.control('',
                [Validators.required, Validators.minLength(5), this.unique]),
        )};
    }
    unique(control: FormControl) {
        return control.value !== 'admin' ? null: {notUnique: true};
    }
}
  1. Angular.io - Form Validation
  2. Angular University Blog

П52. Що робить декоратор Injectable у цьому класі сервісу?

@Injectable({
    providedIn: 'root'
)}
export class DataService { }

Angular.io

П53. Опишіть використання цього коду

export interface AppSettings {
  title: string;
  version: number;
}
export const APP_SETTINGS = new InjectionToken<AppSettings>('app.settings');

П54. Для наступного прикладу шаблонних форм, який аргумент можна передати методу submit у події click для надсилання даних форми?

<form #form="ngForm">
  <input type="text" ngModel="firstName" /> <input type="text" ngModel="lastName" />
  <button (click)="submit()">Зберегти</button>
</form>

П55. Яке призначення властивості конфігурації prelodingStrategy у цьому коді маршрутизатора?

RouterModule.forRoot(
  ...{
    preloadingStrategy: PreloadAllModules,
  },
);

Посилання:

П56. Який альтернативний спосіб написати цю розмітку для прив’язки значення поля класу userName до властивості title елемента h1?

<h1 [title]="userName">Поточний користувач: </h1>

П57. Що робить async pipe у цьому прикладі?

@Component({
  selector: 'app-users',
  template: '<div *ngFor="let user of users | async"></div>',
})
export class UsersComponent implements OnInit {
  users;
  constructor(private httpClient: HttpClient) {}
  ngOnInit(): void {
    this.users = this.httpClient.get<{ name: string }>('users');
  }
}

П58. Як би ви використали цю директиву в розмітці на основі її значення селектора

@Directive({  selector: '[appTruncate]'
})
export class TruncateDirective{  . . .
}

П59. Який хук життєвого циклу можна використовувати на компоненті для моніторингу всіх змін значень @Input на цьому компоненті?

How to detect when an @Input() value changes in Angular?

П60. Який би був приклад використання синтаксису шаблону цього користувацького pipe?

@Pipe({ name: 'truncate' })
export class TruncatePipe implements PipeTransform {
  transform(value: string, maxLength: number, showEllipsis: boolean) {
    const newValue = maxLength ? value.substr(0, maxLength) : value;
    return showEllipsis ? '${newValue}...' : newValue;
  }
}

How do I call an Angular 2 pipe with multiple arguments?

П61. Яку команду Angular CLI ви б запустили, щоб згенерувати UsersComponent і додати його до SharedModule (у файлі shared.module.ts у вашому додатку)?

П62. Як ви можете переписати цю розмітку, щоб контейнер div не був потрібен у фінальному рендері DOM

<div *ngIf="location">
  <h1></h1>
  <p></p>
</div>

П63. Як ви можете використовувати синтаксис шаблону для прив’язки поля класу компонента з назвою tabWidth до вбудованого стилю CSS властивості width на цьому елементі?

<div class="tab"></div>

П64. Які утиліти Angular, якщо такі є, потрібні для модульного тестування сервісу без залежностей конструктора?

Angular unit tests

П65. Яка різниця між охоронцями маршруту CanActivate і CanLoad?

CanActivate vs Canload

П66. Для чого використовується властивість outlet в цьому об’єкті визначення маршрутизатора?

{  path: 'document',  component: DocumentComponent,  outlet: 'document-box'
}

Angular-outlet

П67. У цьому синтаксисі шаблону, кожного разу, коли властивість items змінюється (додається, видаляється тощо), структурна директива ngFor повторно запускає свою логіку для всіх DOM елементів у циклі. Який синтаксис можна використовувати, щоб зробити це більш продуктивним?

<div *ngFor="let item of items"> - </div>

StackOverflow - How to use trackBy with ngFor

П68. Що робить ця команда Angular CLI?

ng build --configuration=production --progress=false

Angular documentation - ng build

П69. Класи сервісів можуть бути зареєстровані як провайдери через які декоратори?

П70. Для чого використовується декоратор Input у цьому класі компонента?

@Component({  selector:'app-product-name',  ...
})
export class ProductNameComponent {  @Input() productName: string
}

Angular documentation - Input()

П71. Який охоронець маршруту можна використовувати для посередництва в навігації до маршруту?

П72. Як ви можете налаштувати інжектор для використання існуючого об’єкта для токена замість того, щоб він створював екземпляр класу?

Configuring dependency providers

П73. На основі цього визначення маршруту, що можна впровадити в конструктор UserDetailComponent, щоб отримати параметр маршруту id?

{path: 'user/:id', component: UserDetailComponent }

Common Routing Tasks

П74. З наступною розміткою реактивної форми, що б ви додали, щоб підключити виклик методу класу onSubmit?

<form [formGroup]="form">
  <input type="text" formControlName="username" />
  <button type="submit" [disabled]="form.invalid">Надіслати</button>
</form>

Angular - Forms

П75. Який очікуваний код DOM для цього використання атрибутної директиви ngClass, коли isActive має значення true?

<div [ngClass]="{ 'active-item': isActive }">Елемент один</div>

Angular - NgClass

П76. Яке найпоширеніше використання для хука життєвого циклу ngOnDestroy?

П77. Яка властивість метаданих декоратора NgModule використовується, щоб дозволити іншим модулям використовувати компоненти та директиви?

П78. Яка відповідь найкраще пояснює використання ngModel в цьому коді шаблону?

<input [(ngModel)]="user.name" />

Angular - NgModel

П79. NgModules можуть бути включені в інші NgModules. Який зразок коду ви повинні використовувати, щоб включити TableModule у SharedModule?

П80. Яка різниця між охоронцями маршруту CanActivate і CanLoad?

CanActivate vs Canload

П81. Яке призначення властивості outlet в цьому об’єкті визначення маршрутизатора?

{  path: 'document',  component: DocumentComponent,  outlet: 'document-box'
}

Angular-outlet

П82. Як ви можете налаштувати інжектор для використання існуючого об’єкта для токена замість того, щоб він створював екземпляр класу?

Configuring dependency providers

П83. На основі цього визначення маршруту, що можна впровадити в конструктор UserDetailComponent, щоб отримати параметр маршруту id?

{path: 'user/:id', component: UserDetailComponent }

Common Routing Tasks

П84. З наступною розміткою реактивної форми, як ви можете прив’язати значення поля класу userName до поля вводу, щоб мати можливість редагувати його?

<form [formGroup]="form">
  <input type="text" formControlName="userName" />
</form>

П85. Яка різниця між параметрами маршруту та параметрами запиту в Angular?

Angular - Routing & Navigation

П86. Як ви можете реалізувати власну стратегію попереднього завантаження для маршрутизатора Angular?

П87. Яка команда Angular CLI створює новий сервіс з ім’ям data і автоматично реєструє його в кореневому модулі?

П88. Яка різниця між ViewChild і ContentChild?

Angular - Component Interaction

П89. Як ви можете заборонити користувачеві залишати сторінку, якщо є незбережені зміни в формі?

@Component({...})
export class UserProfileComponent implements CanDeactivate<UserProfileComponent> {
  canDeactivate(
    component: UserProfileComponent,
    currentRoute: ActivatedRouteSnapshot,
    currentState: RouterStateSnapshot,
    nextState?: RouterStateSnapshot
  ): Observable<boolean> | Promise<boolean> | boolean {
    // Ваша логіка перевірки
  }
}

П90. Яка команда Angular CLI створює новий компонент з ім’ям hero?

П91. Як ви можете реалізувати інтерфейс CanActivate для захисту маршруту?

@Injectable({
  providedIn: 'root',
})
export class AuthGuard implements CanActivate {
  constructor(private authService: AuthService) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
    return this.authService.isLoggedIn();
  }
}

П92. Яка різниця між структурними і атрибутними директивами?

Angular - Structural and Attribute Directives

П93. Як ви можете реалізувати власний pipe в Angular?

@Pipe({ name: 'exponentialStrength' })
export class ExponentialStrengthPipe implements PipeTransform {
  transform(value: number, exponent: string): number {
    const exp = parseInt(exponent, 10);
    return Math.pow(value, isNaN(exp) ? 1 : exp);
  }
}

П94. Як ви можете використовувати Angular CLI для створення нового модуля?

П95. Як ви можете реалізувати інтерфейс CanDeactivate для перевірки, чи може компонент бути деактивованим?

export class UserProfileComponent implements CanDeactivate<UserProfileComponent> {
  canDeactivate(component: UserProfileComponent): Observable<boolean> | Promise<boolean> | boolean {
    return component.canLeave ? component.canLeave() : true;
  }
}

П96. Як ви можете реалізувати власну стратегію завантаження для маршрутизатора Angular?

@Injectable({ providedIn: 'root' })
export class CustomPreloadingStrategy implements PreloadingStrategy {
  preload(route: Route, load: () => Observable<any>): Observable<any> {
    return route.data && route.data.preload ? load() : of(null);
  }
}

П97. Як ви можете використовувати Angular CLI для створення нового сервісу?

П98. Як ви можете реалізувати інтерфейс Resolve для попереднього завантаження даних маршруту?

@Injectable({ providedIn: 'root' })
export class UserResolver implements Resolve<User> {
  constructor(private userService: UserService) {}

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<User> {
    return this.userService.getUser(route.params['id']);
  }
}

П99. Як ви можете реалізувати інтерфейс CanLoad для контролю завантаження модуля?

@Injectable({
  providedIn: 'root',
})
export class AuthGuard implements CanLoad {
  constructor(private authService: AuthService) {}

  canLoad(route: Route, segments: UrlSegment[]): Observable<boolean> | Promise<boolean> | boolean {
    return this.authService.isLoggedIn();
  }
}

П100. Як ви можете реалізувати інтерфейс CanActivateChild для контролю доступу до дочірніх маршрутів?

@Injectable({
  providedIn: 'root',
})
export class AuthGuard implements CanActivateChild {
  constructor(private authService: AuthService) {}

  canActivateChild(
    childRoute: ActivatedRouteSnapshot,
    state: RouterStateSnapshot,
  ): Observable<boolean> | Promise<boolean> | boolean {
    return this.authService.isLoggedIn();
  }
}