dir.by  
  Search  
Programming, development, testing
Angular
Компоненты в Angular
  Looked at 3484 times    
 Компоненты в Angular 
last updated: 24 Augusta 2020
Компонента это представление.
Компонента отображается на экране в виде HTML элементов.
Example
  Файл app.component.ts
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<label>Введите имя:</label>
          <input [(ngModel)]="name" placeholder="name">
          <h1>Добро пожаловать {{name}}!</h1>`
})
export class AppComponent {
     name: "";
}
Объяснение
Чтобы класс мог использоваться в других модулях, он определяется с ключевым словом export.
@Component
Декоратор @Component говорит что класс ниже это Angular компонента

  TypeScript  
@Component({
     selector: 'my-app',
     template: `<label>Введите имя:</label>
          <input [(ngModel)]="name" placeholder="name">
          <h1>Добро пожаловать {{name}}!</h1>`
})
export class AppComponent {
     name: "";
}


Декоратор @Component добавляет в класс AppComponent свойства: selector, template, ...

подробнее о декораторе класса в TypeScript ...

Декоратор @Component находится в библиотеке @angular/core поэтому мы импортируем
  TypeScript  
import { Component } from '@angular/core';
свойство template
Шаблон представляет кусок разметки HTML с вкраплениями кода Angular. Фактически шаблон это и есть представление, которое увидит пользователь при работе с приложением.

Шаблон может быть однострочным или многострочным. Если шаблон многострочный, то он заключается в косые кавычки (`), которые стоит отличать от стандартных ординарных кавычек (').

Каждый компонент должен иметь один шаблон.
свойство templateUrl
Можно вынести шаблон во внешний файл с разметкой html, а для его подключения использовать свойство templateUrl.

  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     templateUrl: './app.component.html'
})
export class AppComponent { }
свойство selector
  TypeScript  
selector: 'my-app'
template: `<label>Введите имя:</label>
     <input [(ngModel)]="name" placeholder="name">
     <h1>Добро пожаловать {{name}}!</h1>`


Соответственно html-страница с <my-app></my-app> будет заменена на template
  Html  
<label>Введите имя:</label>
<input [(ngModel)]="name" placeholder="name">
<h1>Добро пожаловать {{name}}!</h1>


Пример:
  Html  
<!DOCTYPE html>
<html>

<head>
     <meta charset="utf-8" />
     <title>Hello Angular 10</title>
</head>

<body>
     <my-app></my-app>
     <label>Введите имя:</label>
     <input [(ngModel)]="name" placeholder="name">
     <h1>Добро пожаловать {{name}}!</h1>
</body>

</html>
свойство styles
Для установки стилей в компоненте определено свойство styles:
  TypeScript  
@Component({
     selector: 'my-app',
     template: `<h1>Hello Angular 10</h1>
          <p>Angular 10 представляет модульную архитектуру приложения</p>`,
     styles: [`
          h1, h2{color:navy;}
          p{font-size:13px; font-family:Verdana;}
     `]
})
export class AppComponent { }


Селектор :host
Селектор :host ссылается на элемент, в котором хостится компонент. То есть в данном случае это элемент <my-app></my-app>. И селектор :host как раз позволяет применить стили к этому элементу

  TypeScript  
@Component({
     styles: [`
     h1, h2{color:navy;}
     p{font-size:13px;}
     :host {
          font-family: Verdana;
          color: #555;
     }
`]
свойство styleUrls
styleUrls позволяет указать набор файлов css, которые применяются для стилизации. В данном случае предполагается, что файл css располагается в проекте.

  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<h1>Hello Angular 10</h1>`,
     styleUrls: ['./app.component.css']
})
export class AppComponent { }
 
← Previous topic
Модули в Angular
 
Next topic →
Привязка данных в Angular
 
Your feedback ... Comments ...
   
Your Name
Your comment (www links can only be added by a logged-in user)

  Объявления  
  Объявления  
 
Что такое Angular 8?
Новое приложение Angular 8
Вариант 1. Создаем новое Angular приложение с консоли командой angular/cli (50 файлов)
Создаем новое web приложение с Angular 8. Используем командную строку: npx -p @angular/cli@8.1.0 ng new
Вариант 2 (для меня лучший). Создаем новое Angular приложение сами (8 файлов)
Create a new web application with Angular 8 in Visual Studio Code. We use: Node.js + Angular (write our component in ts file) + Typescript (convert files ts to js)
Что происходит при запуске Angular 8 приложения? Запуск main.ts файла. Создание модуля.
Angular 9
Создаем новое web приложение с Angular 9 в Visual Studio Code. Используем: Node.js + Angular (пишем нашу компоненту в ts файле) + Typescript (конвертация файлов ts в js)
Angular 12
Создаем новое web приложение с Angular 12 в Visual Studio Code. Используем: Node.js + Angular (пишем нашу компоненту в ts файле) + Typescript (конвертация файлов ts в js)
В web приложение с Angular 12 добавляем маршрутизацию (router)
Описание Angular
Модули в Angular
Компоненты в Angular
Привязка данных в Angular
Errors
Error "npm : The term 'npm' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spell included, verify that the path is correct and try again." | nodejs npm angular
Error "npm ERR! While resolving: @angular/flex-layout@12.0.0-beta.35 | Could not resolve dependency: | Conflicting peer dependency: @angular/cdk@12.2.13" | nodejs npm angular
ng serve Error "ng : The term 'ng' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spellin the path is correct and try again." | nodejs npm angular
ng serve Error "File ng.ps1 cannot be loaded. The file ng.ps1 is the current system." | nodejs npm angular
Error "Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js)" | nodejs npm angular
Docker для Angular
Используем Docker в проекте с Angular (под Windows)
Angular Flex-Layout
Angular Flex-Layout
WWW сайты для изучения Angular
Сайты для изучения Angular

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика