组件免不了和用户交互,而交互中使用最频繁的莫过于点击事件的交互。angular2-democss
代码解读html
import {Component} from '@angular/core'; import {BasicComponent} from './../basic/Basic'; @Component({ selector:'click-event', styles:[require('./ClickEvent.scss')], template: require('./ClickEvent.html'), directives:[BasicComponent] //须要引用的组件 }) export class ClickEventComponent{ showMsg():void{ console.log('己经触发点击事件'); alert('己经触发点击事件'); } }
basic 就是引用的另外一个组件,这个组件源自于上一篇博客基本组件git
<div> <basic></basic> <button class="btn btn-success" (click)="showMsg()">点击事件</button> </div>
初始化一个values
为空字符串,而后当用户按下键盘的时候把值拼给values
,而且以|
隔开github
import { Component } from '@angular/core'; @Component({ selector:'keyup-event', template: require('./KeyupEvent.html'), styles:[require('./KeyupEvent.scss')] }) export class KeyupEventComponent { values:string = ''; onKey(value:any):void { this.values += value + ' | '; } }
当键盘按下的时候调用onKey
方法数组
<div> <input #box (keyup)="onKey(box.value)" title=""> <p>{{values}}</p> </div>
定义一个heroes
数组并给几个初始值,添加英雄方法能够增长一个新的英雄到heroes
中angular2
import { Component } from '@angular/core'; @Component({ selector:'enter-blur-event', template: require('./EnterBlurEvent.html'), styles:[require('./EnterBlurEvent.scss')] }) export class EnterBlurEventComponent { heroes = ['Windstorm', 'Bombasto', 'Magneta', 'Tornado']; addHero(newHero: string) { if (newHero) { this.heroes.push(newHero); } } }
当用户按enter
或者Add
或者blur
失去焦点且不为空的时候调用newHero
方法,而后循环输出heroes
ui
<input #newHero (keyup.enter)="addHero(newHero.value)" (blur)="addHero(newHero.value); newHero.value='' "> <button (click)=addHero(newHero.value) class="btn btn-success">Add</button> <ul><li *ngFor="let hero of heroes">{{hero}}</li></ul>