将数据从子组件传递到父组件

时间:2016-12-06 09:40:43

标签: angular ionic2 angular-components

我的角度有问题,这里有两个组成部分:

  • MyApp(ParentComponent)
  • LoginPage(ChildComponent)

我在部分UserNow中有一个属性MyApp,我想通过组件UserNow设置属性LoginPage的值。怎么做?

我试过(但没有给出任何影响)

Import {MyApp} from '../../app/app.component'; 

@Component({
  selector: 'page-login',
  templateUrl: 'login.html'
})
export class LoginPage {
    public app: any;

    login() {
        ...
        this.app = MyApp;
        this.app.userNow = MyValue;
        ...
    }
}

2 个答案:

答案 0 :(得分:13)

有几种方法可以做到。

1)使用服务:服务通常在应用程序中有一个实例,可以用来轻松地在组件之间共享数据。 例如。创建一个服务userService并将其注入您想要使用它的组件中。

2)使用Emit:Emit用于在应用程序中发出事件并采取相应的操作。

expression = expression.replace(/[a-z]+|[A-Z]+/g, "v["/$1/"]").replace(/[\(|\|\.)]/g, "");

可以对事件发射采取两种行动。

  • 调用父母的功能:

this.eventInChild.emit(data);

  • 从服务发送和订阅活动(可以在服务和组件中订阅):

在服务中它是这样的:

<child-component (eventInChild)="parentFunction($event)"></child-component>

答案 1 :(得分:4)

像@SaUrAbHMaUrYa解释的那样,你可以从子节点向父节点发送数据,我会这样做:

Provider 1:
Ms. Smith        35        F        Portland,OR             Cardiac
Adam Jacobs      27        M        San Francisco, CA       Gynecology
Emily Lo         19        F        Portland,OR             Ortho
Frances Wu       33        F        Dallas, TX              ENT

Provider 2: 
Clara Smith      35        F        Portland,OR              Cardiac
Bill White       29        M        San Francisco, CA        Ortho
Emily S. Lo      19        F        Portland,OR              Ortho
Dev Patel        22        M        Dallas, TX               Neuro

孩子:

<page-login (on_user_has_logged_in)="userNow = $event"></page-login>