- •Билет 1
- •Билет 2
- •Структура приложения¶
- •Модуль¶
- •Компонент¶
- •Сервис¶
- •Директива¶
- •Билет 3
- •Билет 4
- •Билет 5
- •Билет 6
- •Билет 7
- •Билет 8
- •Билет 9
- •Билет 10
- •Привязка к сеттеру
- •Билет 12
- •Билет 13
- •Билет 14
- •Билет 15
- •Билет 16
- •Корневой уровень
- •Уровень модуля
- •Уровень компонента
- •Билет17 Не то
- •Билет 18
- •Билет 19
- •Билет 20
- •Билет 21
- •Билет 22
- •Билет 23
- •Билет 24
- •Заключение
- •Билет 25
- •Билет 26
- •Билет 27
- •Билет 28
- •Билет 29
- •Билет 30
Билет 13
Что такое шаблонные переменные? Для чего используются и какие бывают?
Шаблонные переменные позволяют определить некоторые переменные внутри шаблона компонента и затем ссылаться к этим переменным из этого же шаблона. Для определения подобных переменных применяется знак решетки.
Определение переменной выглядит следующим образом:
<p #userName>{{name}}</p>
Определение переменной userName в элементе параграфа означает, что мы можем обращаться к этому параграфу через данную переменную.
Шаблонные переменные не могут применяться вне шаблона, даже в коде класса компонента.
Чтобы все таки иметь возможность обращаться к методам и прочей функциональности дочернего компонента, надо использовать декоратор ViewChild. Данный декоратор применяется к свойству и получает селектор элемента DOM, который необходимо отслеживать.
Билет 14
Перечислите атрибутивные директивы. Распишите область применения и пример использования каждой директивы
Директива ngClass позволяет определить набор классов, которые будут применяться к элементу. В качестве значения она принимает набор классов в следующем виде:
[ngClass]={
"класс1": true/false,
"класс2": true/false,
...................
}
Пример:
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `<div [ngClass]="{verdanaFont:true}">
<h1>Hello Angular 8</h1>
<p [ngClass]="{segoePrintFont:true}">
Angular 8 представляет модульную архитектуру приложения
</p>
</div>`,
styles: [
`.verdanaFont{font-size:13px; font-family:Verdana;}
.segoePrintFont{font-size:14px; font-family:"Segoe Print";}`
]
})
export class AppComponent { }
Директива ngStyle позволяет задать набор стилей, которые применяются к элементу. В качестве значения директива принимает js-объект, в котором ключи - названия свойств CSS:
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `<div [ngStyle]="{'font-size':'13px', 'font-family':'Verdana'}">
<h1>Hello Angular 8</h1>
<p [ngStyle]="{'font-size':'14px', 'font-family':'Segoe Print'}">
Angular 8 представляет модульную архитектуру приложения
</p>
</div>`,
styles: [
`.verdanaFont{font-size:13px; font-family:Verdana;}
.segoePrintFont{font-size:14px; font-family:"Segoe Print";}`
]
})
export class AppComponent { }
Также для установки стилей можно применять свойства объекта style:
<div [style.fontSize]="'13px'" [style.fontFamily]="'Verdana'">
<h1>Hello Angular 8</h1>
<p [style.fontSize]="'14px'" [style.fontFamily]="'Segoe Print'">
Angular 8 представляет модульную архитектуру приложения
</p>
</div>
Билет 15
Перечислите структурные директивы. Распишите область применения и пример использования каждой директивы
ngIf
Директива ngIf позволяет удалить или, наоборот, добавить элемент при определенном условии. Например, определим следующий компонент:
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `<p *ngIf="condition">
Привет мир
</p>
<p *ngIf="!condition">
Пока мир
</p>
<button (click)="toggle()">Toggle</button>`
})
export class AppComponent {
condition: boolean=true;
toggle(){
this.condition=!this.condition;
}
}
В зависимости от значения свойства condition будет отображаться либо первый, либо второй параграф.
ngFor
Директива ngFor позволяет перебрать в шаблоне элементы массива. Например:
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `<ul>
<li *ngFor="let item of items">{{item}}</li>
</ul>`
})
export class AppComponent {
items =["Apple iPhone 7", "Huawei Mate 9", "Samsung Galaxy S7", "Motorola Moto Z"];
}
В качестве значения директива принимает значение перебора аля-foreach: let item of items. Каждый перебираемый элемент помещается в переменную item, которую мы можем вывести на страницу.
ngSwitch
С помощью директивы ngSwitch можно встроить в шаблон конструкцию switch..case и в зависимости от ее результата выполнения выводить тот или иной блок. Например:
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `<div [ngSwitch]="count">
<ng-template ngSwitchCase="1">{{count * 10}}</ng-template>
<ng-template ngSwitchCase="2">{{count * 100}}</ng-template>
<ng-template ngSwitchDefault>{{count * 1000}}</ng-template>
</div>`
})
export class AppComponent {
count: number = 5;
}
Директива ngSwitch в качестве значения принимает некоторое выражение. В данном случае это свойство count. В элемент ng-template помещается инструкция ngSwitchCase, которая сравнивает значение выражения из ngSwitch с другим выражением. Если оба выражения равны, то используется данный элемент template. Иначе выполнение переходит к следующим инструкциям ngSwitchCase. Если же ни одна из инструкций ngSwitchCase не была выполнена, то вызывается инструкция ngSwitchDefault.