【发布时间】:2017-02-05 07:08:08
【问题描述】:
在阅读了关于模板表达式/属性绑定/插值的 Angular 2 指南后,我有点困惑,这让我感到困惑:
属性初始化 DOM 属性,然后它们就完成了。财产 价值观可以改变;属性值不能。
例如,当浏览器渲染时, 它创建一个对应的 DOM 节点,并初始化了 value 属性 给“鲍勃”。
当用户在输入框中输入“Sally”时,DOM元素值 属性变为“Sally”。但是 HTML value 属性仍然存在 如果我们询问输入元素,我们会发现不变 attribute: input.getAttribute('value') // 返回 "Bob"
HTML属性值指定初始值; DOM 值 属性是当前值。
disabled 属性是另一个特殊的例子。一个按钮 disabled 属性默认为 false,因此按钮已启用。什么时候 我们添加 disabled 属性,它的存在单独初始化 按钮的 disabled 属性为 true,因此按钮被禁用。
添加和删除 disabled 属性会禁用和启用 按钮。属性的值是无关紧要的,这就是为什么我们 无法通过编写 Still 来启用按钮 已禁用。
设置按钮的禁用属性(例如,使用 Angular 绑定) 禁用或启用按钮。财产的价值很重要。
HTML 属性和 DOM 属性不是一回事,甚至 当他们有相同的名字时。这很重要,我们会说 再次。
模板绑定适用于属性和事件,而不是属性。
但是当我编写一个简单的属性时,在属性字符串中使用插值,它的工作,当我更改 myValue 组件变量时,更改会反映在 dom 上
模板
<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 angular typescript