来自共享服务的数组已输出,但返回未定义

时间:2018-07-26 17:21:04

标签: javascript arrays json angular typescript

从共享服务返回数组的组件

export class QuestionsComponent implements OnInit {
_questions: any;
constructor(private apiService: ApiService) {
  this._questions = this.apiService._dataArray

}
}

在html组件中使用

{{ this._questions | json}}
输出的

[
  [
    {
       "foo": "bar",
        ... so on
    }
  ]
]

但是当使用控制台输出数组时,两个都返回undefined

ngOnInit(): void {
  console.log(this._questions[0])
console.log(this._questions)
}

由另一个组件的事件触发时收集数组

其他组件:

  <input type="checkbox"  [(ngModel)]="option.checked" (ngModelChange)="UpdateData()"/>
  UpdateData(){
    this.apiService.getFilters(this._filters);
  }

API服务

 _dataArray: any[] = [];
 getFilters(object){
  this._dataArray.length = 0;
  this._dataArray.push(object);
}

1 个答案:

答案 0 :(得分:0)

这是因为构造函数中的代码在ngOnInit之前执行。请尝试以下操作:

ngOnInit(): void {
  this._questions = this.apiService._dataArray
  console.log(this._questions[0])
  console.log(this._questions)
}