我试图通过参数传递指向函数的指针,因此该函数可以更新对象的参数。该对象使用{{tasks}}
文件中的tasks.component.html
绑定到视图。不知何故,我在provideAndDisplayTasks()
函数中所做的突变似乎根本不会改变tasks
中的tasks.component.ts
属性。我也有类似的代码。它正确地更新了对象。我不明白为什么它在这种情况下不起作用。
如何在不克隆阵列的情况下更新阵列?
tasks.component.ts:
private provideAndDisplayTasks() {
const self = this;
self.tasks.push(new Task());
console.log('self.tasks', self.tasks);
this.tasksRepository.provideTasks(self.tasks);
}
任务-repository.ts:
public provideTasks(tasks: Task[]) {
console.log('parameter', tasks);
this.get('truelime.task/all').subscribe(
data => this.addTasksToTaskArray(tasks, data),
error => {
if (error.status === 401) {
this.router.navigateByUrl('login');
}
Logger.getInstance().logError(error);
}
);
}
private addTasksToTaskArray(tasks: Task[], tasksDto) {
const taskArray = tasksDto.truelime_tasks[0].TrueLime_Task;
for (let i = 0; i < taskArray.length; i++) {
const taskDto = taskArray[i];
const task = new Task();
task.id = taskDto.TaskID;
task.title = taskDto.TaskTitle;
task.description = taskDto.TaskDescription;
task.status = taskDto.TaskStatus;
tasks.push(task);
console.log('tasks', tasks);
}
}
控制台日志: