Эта статья посвящена созданию простого приложения списка задач с использованием Angular 5.
У нас есть изображение вверху, заголовок, текстовое поле для ввода задачи и кнопка для добавления введенной задачи в список.
В этой истории мы создаем только однокомпонентное приложение.
Итак, давайте начнем,
Создайте новое приложение Angular с помощью Angular CLI, это создаст стартовый проект, с которого мы сможем начать разработку нашего приложения.
Откройте окно командной строки и перейдите к любой папке (щелкните правой кнопкой мыши, удерживая нажатой клавишу Shift, на любой папке, чтобы запустить оттуда командную строку)
новое приложение для моей задачи
Это создаст новое угловое приложение в выбранном каталоге.
установка нпм
Это установит все необходимые модули для приложения.
Установить Bootstrap
npm install — сохранить бутстрап
Добавьте Bootstrap в angular.cli.json
…..
«стили»: [
«../node_modules/bootstrap/dist/css/bootstrap.min.css», //Путь начальной загрузки
«стили.css»
]
……
Откройте index.html, где у нас есть ‹app-root›‹/app-root›, где будет загружено наше приложение.
Откройте редактор по вашему выбору, я использую Visual Studio Code
Это файлы, сгенерированные angular cli
main.ts — файл, с которого начинается выполнение
платформаBrowserDynamic().bootstrapModule(AppModule)
AppModule — это корневой модуль нашего приложения, который будет содержать наши компоненты (компоненты — это блоки, имеющие бизнес-логику).
Для простоты у нас есть только один компонент в нашем приложении.
Внутри AppModule у нас есть
импортировать {BrowserModule} из ‘@angular/platform-browser’;
импортировать {NgModule} из ‘@angular/core’;
импортировать {FormsModule} из ‘@angular/forms’
импортировать {AppComponent} из ‘./app.component’;
@NgModule({
декларации: [
AppComponent
],
импорт: [
БраузерМодуль,
ФормыМодуль
],
провайдеры: [],
начальная загрузка: [AppComponent]
})
экспортировать класс AppModule { }
Импортируйте FormsModule, чтобы включить двустороннюю привязку данных, и добавьте его в массив импорта.
У нас есть наш AppComponent, определенный в объявлениях, который является нашим единственным компонентом.
импортировать {Компонент} из ‘@angular/core’;
@Компонент({
селектор: «приложение-root-start»,
URL-адрес шаблона: ‘./app.component.html’,
URL-адреса стилей: [‘./app.component.css’]
})
экспортный класс AppComponent {
имя_задачи=""; // Содержит имя задачи, введенное в текстовое поле
clipboardImage="https://static.appvn.com/a/uploads/thumbnails/112015/clipboard-manager-pro_icon.png;
//Изображение отображается вверху
items=[] //содержит список задач
добавитьItemToList=()=›{
//Синтаксис ES6 аналогичен функции addItemToList(){….}
//Проверяем, пусто ли имя задачи
если (это.taskName.trim (). длина == 0) {
alert("Пожалуйста, введите название задачи");
возвращение
}
//Добавляем нашу задачу в массив задач
this.items.push(this.taskName);
}
}
Этот компонент отвечает за добавление и отображение задач.
‹! — Содержимое ниже является лишь заполнителем и может быть заменено. →
‹класс div="строка"›
‹div class="col-md-2›‹/div›
‹класс div=”col-md-4›
‹h6 style="margin-top:150px;"›
‹img [src]="clipboardImage" style="width:120px;height:120px;"/›//Привязка свойства
Добро пожаловать в {{ «Диспетчер задач» }}!
//Интерполяция строк
</h6>
‹input class=”form-control” type=”text” [(ngModel)]=”taskName” placeholder=”Enter Task Name”/›
//Двусторонняя привязка данных
‹div style=”height: 10px;text-align: end”›‹/div›
‹класс кнопки = ”btn btn-lg btn-success” стиль = ”margin-left:510px;” (клик)="addItemToList()"›Добавить задачу‹/кнопка›
//Обработка событий
‹/дел›
‹класс div=”col-md-1›‹/div›
‹div class="col-md-4 style="margin-top:50px;"›
//Привязка свойства
‹div class="panel panel-default" [скрытый]="items.length==0›
‹div class="заголовок панели"›
‹h3 class="panel-title"›Мои задачи‹/h3›
‹/дел›
‹div class="панель-корпус"›
‹ul class="list-group"›
//Список предметов
‹li *ngFor="let item of items" class="list-group-item"›{{item}}‹/li›
</ul>
‹/дел›
‹/дел›
‹/дел›
‹класс div=”col-md-1›‹/div›
‹/дел›
Мы используем привязку свойств
‹img [src]="clipboardImage" style="width:120px;height:120px;"/›//Привязка свойства
[src] в квадратных скобках означает, что значение исходного атрибута для изображения будет получено из нашего компонента, где мы определили
clipboardImage="https://static.appvn.com/a/uploads/thumbnails/112015/clipboard-manager-pro_icon.png;
‹input class=”form-control” type=”text” [(ngModel)]=”taskName” placeholder=”Enter Task Name”/›
Символ [()] представляет собой двустороннюю привязку данных, данные будут обновляться как в представлении, так и в контроллере (компоненте).
вы можете поместить ‹p›{{taskName}}‹/p› для предварительного просмотра привязки данных, имя задачи будет обновляться в реальном времени при изменении данных ввода
‹класс кнопки = ”btn btn-lg btn-success” стиль = ”margin-left:510px;” (клик)="addItemToList()"›Добавить задачу‹/кнопка›
Мы используем () для обозначения событий (щелчок) обозначает событие щелчка, которое запускает функцию addItemToList, которая затем добавляет его в список элементов.
‹li *ngFor="let item of items" class="list-group-item"›{{item}}‹/li›
Это отобразит все наши задачи из предметов
- ngFor обозначает структурное изменение, так как в items может быть несколько элементов или не быть ни одного. let определяет локальную переменную, которая выводит значение элемента
Вы можете запустить замену содержимого app.component.html и app.component.ts вышеуказанным содержимым и запустить
нг служить