dir.by  
  Поиск  
Компьютер, программы
Angular
 Привязка данных в Angular 
посмотрели 5743 раз
обновлено: 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
Components in 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)

  Объявления  
  Объявления  
 
What is Angular 8?
New Angular 8 application
Option 1. Creating a new Angular application from the console with the angular/cli command (50 files)
Creating a new web application with Angular 8. Using the command line: npx -p @angular/cli@8.1.0 ng new
Option 2 (the best for me). Creating a new Angular application yourself (8 files)
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)
What happens when I start an Angular 8 application? Run main.ts file. Creating a module.
Angular 9
Creating a new web application with Angular 9 in Visual Studio Code. Use: Node.js + Angular (write our component in the ts file) + Typescript (convert ts files to js)
Angular 12
Creating a new web application with Angular 12 in Visual Studio Code. Use: Node.js + Angular (write our component in the ts file) + Typescript (convert ts files to js)
Adding routing (router) to the web application with Angular 12
Angular Description
Modules in Angular
Components in Angular
Binding data in 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 for Angular
Using Docker in a project with Angular (for Windows)
Angular Flex-Layout
Angular Flex-Layout
WWW Sites to Learn Angular
Sites to learn Angular

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