Angular:为另一个组件的数组添加值

时间:2018-05-17 09:04:20

标签: angular typescript

我有2个组件,点击第1个组件的按钮,应该将值(任何字符串)添加到第2个组件的数组中。我怎样才能实现这一目标?我在角4上工作。

@Component({
  selector: 'app-sibling',
  template: `
    {{message}}
    <button (click)="newMessage()">New Message</button>
  `,
  styleUrls: ['./sibling.component.css']
})
newMessage() {
    console.log("button clicked");
  }

2 个答案:

答案 0 :(得分:0)

您主要希望在两个组件之间进行通信,

您可以将服务与Array一起使用。 Angular中的服务是单例,这意味着它作为单个实例进行管理。因此,如果每个组件都访问该服务,他们将访问相同的共享数据。

export class cartService{
    prod :any = [];        
    UpdateArray (newObject: any) {
        this.prod.push(newObject);         
    }
}

在您的组件中,您可以执行此操作,

  this._cartService.UpdateArray(this.prod);

任何可以用您的对象类型替换

答案 1 :(得分:-1)

您可以做的是创建服务。

您可以使用CLI执行此操作

ng generate service 'name'

您可以在此服务中创建变量,将服务注入到两个组件中,并且您可以在两个组件中访问它。

查看https://angular.io/tutorial/toh-pt4