Угловой сигнал не перечисляетJavascript

Форум по Javascript
Ответить
Anonymous
 Угловой сигнал не перечисляет

Сообщение Anonymous »

В приведенном ниже коде углового (v18) статический список из 3 alltasks отфильтровывается идентификатором пользователя, когда компонент рендерирует и отображается (для userid u3 ) 2 задачи через вычисленные задачи свойство.
Существует событие, которое вызывает oncompletetask () , которое успешно удаляет задачу из Alltasks . Длина Alltasks регистрируется как снижение с 3 до 2. Мы ожидаем, что свойство задачи () теперь вернет 1 вместо 2 фильтрованных задач.
Тем не менее, компонент не повторно рендеринг - функция вычисленных задач никогда не вызывается, хотя Alltasks обновляется - действительно с новой ссылкой.
Почему задачи не обновляются при изменении AllTasks ?import { Component, input, computed } from '@angular/core';
//import { NgIf } from '@angular/common';

import { TaskComponent } from './task/task.component';

import { Task } from './task.model';

@Component({
selector: 'app-task-list',
standalone: true,
templateUrl: './tasks.component.html',
imports: [TaskComponent],
styleUrls: ['./tasks.component.css'],
})
export class TaskListComponent {
userId = input();
userName = input();
allTasks: Task[] = [
{
id: 't1',
userId: 'u1',
title: 'Master Angular',
summary: 'Learn all the basic and advanced features of Angular & how to apply them.',
dueDate: '2025-12-31',
},
{
id: 't2',
userId: 'u3',
title: 'Build first prototype',
summary: 'Build a first prototype of the online shop website',
dueDate: '2024-05-31',
},
{
id: 't3',
userId: 'u3',
title: 'Prepare issue template',
summary: 'Prepare and describe an issue template which will help with project management',
dueDate: '2024-06-15',
},
];
tasks = computed(() => {
console.log('Computing tasks for user', this.userId());
return this.allTasks.filter((task) => task.userId === this.userId());
});

constructor() {}

onCompleteTask(id: string) {
let newTasks = this.allTasks.filter((task) => task.id !== id);
this.allTasks = newTasks;
console.log('Completed task', id, this.allTasks.length);
}
}



Подробнее здесь: https://stackoverflow.com/questions/794 ... ecomputing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»