码迷,mamicode.com
首页 > 其他好文 > 详细

Inputs & Outputs

时间:2016-04-15 16:44:10      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:

@Component中有属性值 selector,template(templateUrl),styles(styleUrl),directives,proviers,inputs,outputs。

inputs 和outputs是用来干嘛的呢??? 

 

first.component.ts

import  {Component} from angular2/core
import {FistChildComponent} from ./firstchild.component

@Component({
    template :`
        <div class="parent">
            <h3>Parent</h3>
            <div>child value : {{childVal}}</div>
            <div><input #parentInput type="text" (keyup)="0" /></div>
            <div class="child" [postValue]="parentInput.value" (getValue)="getChange($event)" >

            </div>
        </div>
    `,
    styles : [`
        .parent { padding:10rem 2rem 2rem; background-color:#ececec;}
        .child { padding:2rem; background-color:#eee; border:1px solid #000; margin:2rem 0;}
    `],
    directives : [FistChildComponent]
})

export class FirstComponent {
    public childVal: string;
    getChange(val){
        this.childVal = val;
    }
}

 

firstchild.component.ts

import {Component ,EventEmitter} from angular2/core

@Component({
    selector : .child,
    template : `
        <div class="childNode">
           <h3>Child</h3>
           <div>parent value : {{postValue}}</div>
           <div><input type="text" #childInput (keyup)="onChange(childInput.value)" /></div>
        </div>
    `,
    inputs : [postValue],
    outputs : [getValue]
})

export class FistChildComponent {
    getValue = new EventEmitter<string>();
    onChange(val){
        this.getValue.emit(val);
    }
}

 

inputs和outputs 用来从父模块中接收数据和向父模块发送数据的,在父模块中 [postValue]对应inputs    (getValue)对应outputs

要记住一点的是:父模块在引用子模块的时候是用的[], 父模块在引用子模块的时候是用的()。

 

inputs和outputs 可以修改为@input 和 @output

firstchild.component.ts修改为:

import {Component ,EventEmitter ,Input , Output} from angular2/core

@Component({
    selector : .child,
    template : `
        <div class="childNode">
           <h3>Child</h3>
           <div>parent value : {{postValue}}</div>
           <div><input type="text" #childInput (keyup)="onChange(childInput.value)" /></div>
        </div>
    `
})

export class FistChildComponent {
    @Input(postValue)  postValue: string;
    @Output(getValue) getValue = new EventEmitter<string>();
    onChange(val){
        this.getValue.emit(val);
    }
}

 

Inputs & Outputs

标签:

原文地址:http://www.cnblogs.com/bq-med/p/5395927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!