Создание объекта обновления в Angular

#angular #typescript

#angular #typescript

Вопрос:

Приведенный ниже код кажется мне ужасным, но я не уверен в лучших практиках по созданию объектов обновления во внешнем интерфейсе.

 buildTaskUpdateObject() {
    this.tasks.forEach(task => {
        debugger;
        const taskRoutingUpdate = new TaskRoutingUpdate();
        taskRoutingUpdate.taskGuid = task.taskGuid;
        taskRoutingUpdate.printer = this.selectedEquipment.$id;
        this.confirmRoutingUpdate.push(taskRoutingUpdate);
    });
}
  

Существуют ли лучшие практики, связанные с получением коллекции объектов и извлечением определенных фрагментов для обновления базы данных?

Комментарии:

1. Это не совсем отличается от того, что я делаю. YoukouleleY делает хороший вывод. Примечание: не вставляйте debugger в свой фактический исходный код, просто используйте точки останова в devtools. Существует ненулевой риск того, что вы запустите это в производство.

2. По какой-то причине мои точки останова не работают, поэтому я использовал отладчики. Я согласен, что они глупы и подвержены риску для производства.

3. Ах, это интересно. Возможно, вам не хватает исходных карт? Не главная проблема, но в конечном итоге на что-то стоит обратить внимание. Я бы не назвал это обязательно «глупым», просто рискованным. Иногда вы должны делать то, что вы должны делать…

Ответ №1:

Ваш код можно упростить следующим образом:

 class TaskRoutingUpdate {
  constructor(obj?: any) {
    Object.assign(this, obj);
  }
}



buildTaskUpdateObject() {
  this.tasks.forEach(({ taskGuid }) => {
    this.confirmRoutingUpdate.push(new TaskRoutingUpdate({ taskGuid, printer: this.selectedEquipment.$id }));
  });   
}
  

Комментарии:

1. Мне нравится, как это выглядит намного больше. Я думал, что может существовать метод rxjs, который мог бы выполнить эту работу, но это может быть излишним для того, что я пытаюсь здесь сделать.

2. Действительно, вам не нужно обрабатывать события здесь