Компонент и модель
Компонент
- Создание компонента:
ng g c recipes - Создание вложенного компонента:
ng g c recipes/recipe-list - Дополнительные параметры: -
-spec false(можно добавить чтобы не создавать тестовый файл, напримерng g c recipes --spec false)
Модель
Модель - это файл формата Typescript. Создадим файл \app\recipes\recipe.model.ts:
export class Recipe {
public name: string;
public description: string;
public imagePath: string;
constructor(name: string, description: string, image: string) {
this.name = name;
this.description = description;
this.imagePath = image;
}
}
Добавление данных в Компонент
\app\recipes\recipe-list\recipe-list.component.ts:
//Импорт модели:
import { Recipe } from '../recipe.model'
//Добавление массива объектов:
export class RecipeListComponent implements OnInit {
recipes: Recipe[] = [
new Recipe(
'Test recipe',
'This is a simple test',
'https://cdn.pixabay.com/photo/2017/07/16/10/43/recipe-2508859_960_720.jpg'
)
];
...
}
recipes: Recipe[]- переменная recipes с типом массив объектов класса Recipe (Typescript синтаксис).
\app\recipes\recipe-list\recipe-list.component.html:
<div class="row">
<div class="col-xs-12">
<button class="btn btn-success">New Recipe</button>
</div>
<div class="row">
<div class="col-xs-12">
<a href="#" class="list-group-item clearfix">
<div class="pull-left">
<h4 class="list-group-item-heading">Recipe Name</h4>
<p class="list-group-item-text">Description</p>
</div>
<span class="pull-right">
<img src="" alt="" class="img-responsive" style="max-height: 50px;">
</span>
</a>
<app-recipe-item></app-recipe-item>
</div>
</div>
</div>
Создание общей модели
В директории app создадим папку shared, и в ней файл indigrients.model.ts:
export class Indigrient {
public name: string;
public amount: number;
constructor (name: string, amount: number) {
this.name = name;
this.amount = amount;
}
}
Данный код можно заменить на короткий вариант:
export class Indigrient {
constructor (public name: string, public amount: number) {
this.name = name;
this.amount = amount;
}
}
Отладка
Для отладки ошибки в скрипте нужно поставить breakpoint (в chrome он ставится кликом на номер строки кода) и обновить страницу. Это можно сделать несколькими способами:
- в консоли разработчика перейти во вкладку source и кликнуть по файлу
main.bundle.js. Данный способ не удобен, так как этот файл может быть слишком большим; - во вкладке source раскрыть
webpack://, выбрать папку проекта и необходимый файл; - Отладка расширением Augury. Расширение позволяет увидеть структуру проекта, и может быть полезно при отладке.
Помощь сайту
ЮMoney:
4100 1180 7209 833
Карта Сбербанк:
2202 2080 6183 7127
Формы. Реактивный подход.
Формы. Шаблонный подход.
Формы в Angular
Subject
Observable. Subscribe и Unsubscribe
Route. Обновление шаблона
Route Resolving
Route передача статичных данных
Route. Контроль навигации с помощью сервиса
Route. Защита роутера
Route. Вынос настроек роутера
Route. Переключения и параметры
JavaScript операторы
Сервисы
Структурные директивы
Binding свойств директив
HostListener и HostBinding
Директива атрибута
Навигация. Передача данных событиями
События и жизненный цикл
ng-content
Инкапсуляция стилей и ссылки
Связывание свойств и событий
Компонент и модель
Директива ngFor
Angular CSS и Style
Динамические шаблоны в Angular
События
Компонент и данные
Шаблон и стили компонента
Создание компонентов в Angular
TypeScript, Bootstrap, Main.ts
Установка и первый запуск Angular
Возможно, вам будет интересно
Route Resolving
Разрешение динамических данных перед активацией роута и интерфейс Resolve в Angular
Subject
Использование класса Subject для создания сервиса, реализующего observable и observer в Angular
HostListener и HostBinding
Использование декораторов HostListener и HostBinding для реагирования на события и работы со стилями в Angular