После прочтения углового 2 руководство о шаблоне выражения/свойств выжидать/интерполяции, я немного запутался, вот что запутать меня:angular2 интерполяция и элемент (атрибут против собственности)
Атрибуты инициализировать свойства DOM и то они сделаны. Свойство значения могут меняться; Значения атрибутов не могут.
Например, если браузер отображает , он создает соответствующий узел DOM со значением, инициализированным , на «Боб».
Когда пользователь вводит «Sally» в поле ввода, значение элемента DOM становится «Sally». Но атрибут HTML значения остается неизменным , как мы обнаружим, если мы задаем элемент ввода об этом атрибуте: input.getAttribute («значения») // возвращает «Боб»
Значение атрибута HTML определяет начальное значение; значение DOM - текущее значение.
Отключенный атрибут - еще один особый пример. Отключенное свойство кнопки по умолчанию ложно, поэтому кнопка включена. Когда мы добавляем отключенный атрибут, его присутствие только инициализирует отключенное свойство кнопки значением true, поэтому кнопка отключена.
Добавление и удаление отключенного атрибута отключает и включает кнопку . Значение атрибута не имеет значения, поэтому мы не можем включить кнопку, записав Still Отключено.
Установка свойства отключения кнопки (например, с помощью углового привязки) отключает или включает кнопку. Значение свойства имеет значение.
Атрибут HTML и свойство DOM - это не одно и то же, даже , когда они имеют одинаковое имя. Это так важно, мы снова скажем это .
Работа с шаблонами со свойствами и событиями, а не атрибутами.
но когда я написать простой атрибут, используя интерполяцию внутри атрибута строки, его работы, когда я изменить переменную myValue
компонента, изменение отражается на РОМ
Шаблон
<a href="{{myValue}}">tata</a>
<button (click)="change()">test</button>
Компонент
import { Component, OnInit } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'my-test',
templateUrl: 'test.component.html'
})
export class TestComponent implements OnInit {
myValue : number = 0;
ngOnInit() { }
public change() {
this.myValue = (Math.random() * 10)
}
}
спасибо, еще одна маленькая вещь; хром-инструмент отладки показывает свойство атрибута или dom? – karim
Если вы отлаживаете JavaScript/TypeScript и расширяете объект, созданный с помощью метода getElementById() ', chrome покажет вам свойства DOM. Интересно, что одним из этих свойств является «атрибуты», который содержит значения для ... вы догадались, атрибуты этого элемента. Когда вы посмотрите на acutal DOM на вкладке «elements», это отразится только на изменениях атрибутов. –