如何知道Angular 2+中何时可以使用来自observable的数据?

时间:2018-04-29 14:40:48

标签: angular

当我发现很难编写一个使用变量的函数时,我正在尝试使用Angular 4和NodeJS编写一个小型Web应用程序,该变量将由我的服务进行初始化和更新。 这是我的片段:

getStudentsBySessionId() {
  this.sessionService
    .getStudentsBySession(this._sessionId)
    .subscribe(students => {
      this.sessionStudents = students;
      this.reInitDatatable();
  });
}

isAdded(studentId){
  this.sessionStudents.forEach(student => {
    if(student._id === studentId){
      return true;
    }
  });
  return false;
}

但是,当在模板文件中调用isAdded函数时,会引发sessionStudents未定义的错误。

在这种情况下如何正确编写程序?

谢谢!

1 个答案:

答案 0 :(得分:0)

如何将sessionStudents初始化为空数组?然后我相信模板文件中的函数调用将起作用。假设以下是您的组件...

class YourComponent {

  sessionStudents = [];

  getStudentsBySessionId() {
    this.sessionService
      .getStudentsBySession(this._sessionId)
      .subscribe(students => {
        this.sessionStudents = students;
        ...
      });
  }

  isAdded(studentId){
    ...
  }

}

我相信当在订阅的成功处理程序中重新分配sessionStudents的值时,模板应自动获取更改。

这有帮助吗?