Javascript 如何将数据从组件传递到保存数组的.ts文件?

Javascript 如何将数据从组件传递到保存数组的.ts文件?,javascript,angular,typescript,Javascript,Angular,Typescript,我正在开发一个预算应用程序。我有一个组件,它保存我想传递给存储在它自己的文件中的数组的值。我能够从数组中获取数据,但似乎不知道如何将数据推送到数组中 有没有办法做到这一点,或者我必须创建另一个组件并将数组存储在该组件中 input.component.ts import { Component, OnInit, Input } from '@angular/core'; import { USERS } from '../mock-users'; import { Users } from '.

我正在开发一个预算应用程序。我有一个组件,它保存我想传递给存储在它自己的文件中的数组的值。我能够从数组中获取数据,但似乎不知道如何将数据推送到数组中

有没有办法做到这一点,或者我必须创建另一个组件并将数组存储在该组件中

input.component.ts

import { Component, OnInit, Input } from '@angular/core';
import { USERS } from '../mock-users';
import { Users } from '../Users';
//import { Users } from '../Users';

@Component({
  selector: 'app-input',
  templateUrl: './input.component.html',
  styleUrls: ['./input.component.css']
})
export class InputComponent implements OnInit {

  @Input() description: string;
  @Input() date: Date;
  @Input() amount: number;
  @Input() category: string;


  constructor() { }

  ngOnInit() {
  }

  addExpense() {

    console.log('expense added');

  }

}
mock-users.ts

import { Users } from './Users';

export const USERS: Users[] = [
    {
        id: 1,
        name: 'Keenan',
        username: 'keenan.kaufman',
        password: 'admin',
        expenses: [{
                    //var myDate = new Date('2019-5-2T00:00:00');
                    date: new Date('2019-5-2T00:00:00'),
                    description: 'Electric Bill',
                    amount: 42,
                    category: 'Utilites'
                    },
                    {
                    date: new Date('2019-5-2T00:00:00'),
                    description: 'Rent',
                    amount: 350,
                    category: 'Rent' 
                    }]
    }

];

定义一个为您保存数据的真正基本的服务,这样您就可以将它注入到您需要的任何组件中,并自由地访问数据



在其中一个组件中,您可以像这样访问数据

public usersLocal: Users[];
constructor(private dataService: DataService) {}

public ngOnInit(): void
{
    this.usersLocal = this.dataService.users;
    console.log(this.usersLocal); 
    // array held in service by reference can now push and / splice etc 
}
您可以在服务中定义用于向阵列添加和从阵列中删除的函数,以及围绕数据所需的任何其他操作



.

那么,您想为所有组件全局共享该阵列吗?如果是这样的话,我建议使用一种服务来保存该数组(使用推送、删除等方法),并且可以将其注入到您想要的任何组件中。使用一种服务来获取数据乐于帮助:-)
public usersLocal: Users[];
constructor(private dataService: DataService) {}

public ngOnInit(): void
{
    this.usersLocal = this.dataService.users;
    console.log(this.usersLocal); 
    // array held in service by reference can now push and / splice etc 
}