Angular构造函数中填写的列表未在方法中定义

Angular List Filled in constructor is Not defined in method

我有一个 Angular 9 组件,其服务注入构造函数并在构造函数内部用于填充特定模型的列表,如下所示:

 export class translationtasksComponent implements OnInit { 
    usertaskslist: UserTaskType[];
    constructor( public service3: UserService) {   
    service3.getTasks().subscribe(res => { this.usertaskslist = res as UserTaskType[] });
     }  
    }

在同一个组件内,我有 2 个方法,我尝试使用之前的列表如下:

 getFilteredUsers(options) {
        return {
          store: this.usertaskslist,
          filter: options.data ? ["taskTypeId", "=", options.data.userTaskTypeTaskTypeId] : null
        };
      }

 setUserValue(rowData: any, value: any) {
        .
        .
         console.log( this.usertaskslist)
        .
        .
      }

构造函数运行良好并填满了列表。 第一种方法也工作正常,但在第二种方法中,列表返回 "undefined"。 我尝试在 setUserValue 方法中再次调用该服务作为解决方法,但该服务也未定义且未被识别为服务。

注意:我正在使用带有 Angular 模板的 .net 核心。

这 2 个方法是由来自 DevExtreme 的 dxDataGrid 触发的事件。

我找到了一个解决方案,但我不知道我是否理解它的所有方面。 由于某种原因,编辑 dxDataGrid 单元格时触发的触发事件 (setUserValue) 似乎无法直接访问组件实例。但事实证明,我可以在构造函数中将组件实例传递给它,然后在我的处理程序中接收它并使用它。它运行良好,如下所示:

constructor(public service3: UserService) {
    service3.getTasks().subscribe(res => { this.usertaskslist = res as UserTaskType[] });
    .
    .
   let that = this,
   origOnSetCellValue = this.setUserValue;
   this.setUserValue = function () {
     origOnSetCellValue.apply(this, [].slice.call(arguments, 0, 3).concat([that]));
   };

  }

.
.
setUserValue(rowData: any, value: any, currentData, componentInstance) {

    var currentUserId = currentData.userTaskTypeUserId;
    var currentTaskType = currentData.userTaskTypeTaskTypeId;
    var currentUserTask = componentInstance.usertaskslist;
}