角度服务不显示对象数组值[重复]

Posted

技术标签:

【中文标题】角度服务不显示对象数组值[重复]【英文标题】:Angular services doesn't show object array value [duplicate] 【发布时间】:2021-09-16 22:28:35 【问题描述】:

我是 Angular 的新手,正在尝试使用日期过滤器做应用程序。所以这是我的问题: 我正在尝试将任务发送到服务以从另一个组件接收。当我从我的服务运行 getTasks 模块时,它不会返回我的数组。控制台只显示函数。

import  Injectable  from '@angular/core';
import  NewTaskPageComponent, ToDoTask  from './new-task-page/new-task-page.component';
import  task  from './app.component';

@Injectable(
  providedIn: 'root'
)
export class TaskService 
  tasks:ToDoTask[]=[];
  constructor()  
  addTask(task:ToDoTask)
    this.tasks.push(task);
  
  getTasks():ToDoTask[]
    return this.tasks;
  




这是我的服务.ts

import AppComponent from '../app.component';
import  Component, OnInit  from '@angular/core';
import  TaskService  from '../task.service';

@Component(
  selector: 'app-new-task-page',
  templateUrl: './new-task-page.component.html',
  styleUrls: ['./new-task-page.component.sass'],
  providers: [TaskService]
)
export class NewTaskPageComponent implements OnInit 
  newTask ?: ToDoTask;
  constructor(private _taskService:TaskService)

  

  ngOnInit(): void 
  
  sendTask(task:string,date:string): void
    this.newTask = new ToDoTask(task,date);
    this._taskService.addTask(this.newTask);
    console.log(this._taskService.getTasks);
  


export class ToDoTask
  task: string;
  date: string;
  constructor(task:string,date:string)
    this.task = task;
    this.date = date;
  



这是我正在尝试发送和获取数据的组件。

【问题讨论】:

console.log(this._taskService.getTasks) 替换为console.log(this._taskService.getTasks())。由于 getTasks 是您需要调用它的服务的方法 【参考方案1】:

感谢a comment by vadimk7,我通过在函数周围添加括号解决了这个问题。

我将原始代码中的console.log(this._taskService.getTasks) 替换为console.log(this._taskService.getTasks())

尾括号是必需的,因为getTasks 是在服务上调用的方法。

【讨论】:

以上是关于角度服务不显示对象数组值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用动态对象数据在角度模板中显示对象数据

在不同组件中使用相同的对象数组,如果对一个对象进行任何更新,将在角度 8 中显示其他组件中的更新

以角度声明对象的可观察数组

在Javascript中推送不重复的数组并更改对象的属性值?

检查角度数组对象是否具有指定值

计算对象数组中的重复项