dir.by  
  Search  
Programming, development, testing
Angular
Привязка данных в Angular
  Looked at 4181 times    
 Привязка данных в Angular 
last updated: 25 November 2020
В Angular есть четыре формы привязки данных:
Вариант 1 (односторонняя привязка).
Привязка элемента DOM к значению компоненты.
В двойных фигурных скобках указывается выражение, к которому идет привязка {{выражение}}

Пример:
  Html  
<h1>Добро пожаловать {{name}}!</h1>

подробнее...
 
Вариант 2 (односторонняя привязка).
Привязка свойства элемента DOM к значению компонента.
Пример:
  Html  
<input type="text" [value]="name" />

подробнее...
 
Вариант 3 (односторонняя привязка).
Привязка к событию.
Генерация события в DOM вызывает метод на компоненте.

Пример:
  Html  
<button (click)="addItem(text, price)">Добавить</button>

подробнее...
 
• Изменение элемента DOM меняет значение компоненты.
• Изменение значения компоненты меняет элемента DOM.

Пример:
  Html  
<input [(ngModel)]="name" placeholder="name">

подробнее...
 
Вариант 1 (односторонняя привязка). Привязка элемента DOM к значению компоненты.
Одноторонняя привязка для отображения текста.
1) Объявляем переменную в Angular компоненте
текст заключается в использовании фигурных скобок {{ }} в которые передается значение из компонента.

А можно еще метод использовать!!!!!!!!
  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<p>Имя: {{name}}</p>
          <p>Возраст: {{age}}</p>`
})
export class AppComponent {
     name = "Tom";
     age = 25;
}
При запуске приложения выражения {{name}} и {{age}} будут автоматически заменяться соответствующими значениями, определенными в компоненте:
Если в процессе работы приложения свойства name и age в компоненте изменят свое значение, то также изменится значение в html.
Вариант 2 (односторонняя привязка). Привязка свойства элемента DOM к значению компонента.
Мы можем привязать значение к свойству элемента html.
В этом случае свойство указывается в [] квадратных скобках.
  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<input type="text" [value]="name" />`
})
export class AppComponent {
     name = "Tom";
}
Вариант 3 (односторонняя привязка). Привязка к событию.
Генерация события в DOM вызывает метод на компоненте.
  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<p>Количество кликов {{count}}</p>
          <button (click)="increase()">Click</button>`
})
export class AppComponent {
     count: number=0;
     increase() : void {
          this.count++;
     }
}
В шаблоне определен элемент button, у которого есть событие click.
Для обработки этого события в классе AppComponent определен метод increase(), который увеличивает количество условных кликов.
В итоге при нажатии на кнопку сработает данный метод.
В качестве альтернативы мы могли бы установить привязку к событию так:
  TypeScript  
template: `<p>Количество кликов {{count}}</p>
     <button on-click="increase()">Click</button>`
После префикса on через дефис идет название события.

Мы также можем передавать информацию о событии через объект $event
  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<p>Количество кликов {{count}}</p>
          <button (click)="increase($event)">Click</button>`
})
export class AppComponent {
     count: number=0;
     increase($event : any) : void {
          this.count++;
          console.log($event);
     }
}
$event - это встроенный объект, через который Angular передает информацию о событии.
Вариант 4 (двусторонняя привязка). Привязка элемента DOM к значению компоненты и наоборот.
Двусторонняя привязка позволяет динамически менять значения на одном конце привязки при изменениях на другом конце.
Как правило, двусторонняя привязка применяется при работе с элементами ввода, например, элементами типа input.
  TypeScript  
import { Component } from '@angular/core';

@Component({
     selector: 'my-app',
     template: `<p>Привет {{name}}</p>
          <input type="text" [(ngModel)]="name" /> <br><br>
          <input type="text" [(ngModel)]="name" />`
})
export class AppComponent {
     name:string="Tom";
}
 
← Previous topic
Компоненты в Angular
 
Next topic →
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
 
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  
Яндекс.Метрика