Angular4 @Input()将值从父组件传递到子组件

时间:2017-11-17 11:41:49

标签: angular

我在App component.html中有这样的代码。

 <form>
        <input #box1 (blur)="onKey1(box1.value)" type="text" name="username">
        <p>{{box1.value}}</p>
    </form>

在AppComponent.ts中我有这样的代码。

import { Component } from '@angular/core';
import { OnInit } from '@angular/core/src/metadata/lifecycle_hooks';
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent{
    type:string;
    constructor() { }
    onKey1(value:string)
    {
        this.type=value;  
    }
}

现在我创建了一个名为MyComponent3的组件。在该组件中,我想从app组件中检索数据.MyComponent3.html的代码如下:

<p>{{type}}</p>

在MyComponent3.ts中,我有以下代码。

import { Component, OnInit, ViewEncapsulation,Input } from '@angular/core';
@Component({
    selector: 'app-my-component3',
    templateUrl: './my-component3.component.html',
    styleUrls: ['./my-component3.component.css'],
    encapsulation: ViewEncapsulation.None
})
export class MyComponent3Component implements OnInit {
    @Input() type;
    ngOnInit() {
    }
}

但是在输出中,值没有从AppComponent传递到My Component3。

1 个答案:

答案 0 :(得分:3)

应该在其中提及您要传递给子组件的任何属性。您可以使用@input和html传递给子组件,如下所示,

<app-my-component3 [type]="type"></app-my-component3>