如何更改不同组件中的变量

问题描述 投票:1回答:2

我有两个组件-一个mainComponent,一个MenuComponent。从MenuComponent,我想更改mainComponent中的变量。]​​>

import { Injectable, Component, OnInit, NgZone } from '@angular/core';

@Injectable()
@Component({
  selector: 'app-componentmain',
  templateUrl: './main.component.html',
  styleUrls: ['./main.component.css']
})
export class ComponentMainContent {
  public selectedGroup : any;

在菜单组件中:

import { ComponentMainContent } from '../main/main.component';
@Component({
..
providers: [ComponentMainContent]
..

export class MenuListItemComponent implements OnInit {
constructor(private ComponentMain: ComponentMainContent,

..
showGroup(item: NavItem){
     this.ComponentMain.selectedGroup = 'test'; - nothing is happening
  }

in main component.html:

{{selectedQmgr}}

你能告诉我我在想什么。谢谢!

我有两个组件-一个mainComponent,一个MenuComponent。从MenuComponent,我想更改mainComponent中的变量。从'@ angular / core'导入{Injectable,Component,OnInit,NgZone}; @ ...

angular components
2个回答
1
投票

我认为有几种方法可以解决此问题。尽管您认为应该可以将父组件注入到子组件中,但是我并没有使用您尝试很多的方法,因此我无法对可能发生的事情发表任何评论。我使用的其他两种方法是:


0
投票

只需创建一个共享服务,然后将该服务注入组件中,并且您更改该服务的任何属性都会反映到其他组件,因为它是同一服务。

© www.soinside.com 2019 - 2024. All rights reserved.