基本Html属性绑定css
<td [attr.colspan]="tableColspan">Something</td>
css类绑定编程
<div class="aa bb" [class]="someExpression">something</div> <div [class.special]="isSpecial">something</div> <div [ngClass]="{aaa:isA, bbb:isB}">something</div>
样式绑定异步
<button [style.color]="isSpecial?'red':'blue'>Red</button> <div [ngStyle]="{'font-style':this.canSave?'italic':'normal'}"></div>
4.双向绑定angular4
<input [(ngModue)]='name'>{{name}}
响应式编程 其实就是异步数据流编程观察者模式与Rxjs
可观察对象Observable(stream,数据生产者,可观察对象,被观察者):表示一组值或者事件的集合.
在可观察对象发射数据(流)并通过操做符操做后,接着就能够经过订阅(subscribe)这个数据(流)而后激活以前注册的Observable(观察者,一组回调的集合)的回调函数拿到最终结果(完成观察者对可观察对象的订阅)
订阅Subscription:表示一个可观察对象,主要用于取消订阅函数
具体实例实现:this
constructor(){ Observable.from([1,2,3,4]) .filter( e => e%2 == 0) .map( e => e*e ) .subscribe( e => console.log(e) ) } // debounce是空闲时间的间隔控制
<p>The hero's birthday is {{ birthday | date }}</p> // birthday | date 部分的date就是一个实例管道
The chained hero's birthday is {{ birthday | date | uppercase}} //链式管道就是在变量后面连接多个pipe
{{ birthday | date: *FullDate* }}
@Pipe({name: 'exponentialStrength'}) export class ExponentialStrengthPipe implements PipeTransform { transform(value: number, exponent: string): number { let exp = parseFloat(exponent); return Math.pow(value, isNaN(exp) ? 1 : exp); } }
值变化或者对象引用发生变化的时候,才会执行管道。spa
速度超慢,深度检测,会频繁检测。pure设为false。双向绑定