Добавьте элементы в модель

Я пытаюсь добавить некоторые элементы в модель. Я точно не знаю, как это работает в Angular, поэтому я пробую .add

Модель

export class Profile {
  id: number;
  nombre: descripcion;
}

ТС

 perfilesTodos: Profile[];
 response["body"].forEach((index: number) => {
        if (response["body"] == 1) {
          this.perfilesTodos.push(index, "Arson");
        } else if (response["body"] == 2) {
          this.perfilesTodos.push(index, "Administrador de entidad");
        } else if (response["body"] == 3) {
          this.perfilesTodos.push(index, "Administrador de grupo");
        } else if (response["body"] == 4) {
          this.perfilesTodos.push(index, "Gestor");
        } else if (response["body"] == 5) {
          this.perfilesTodos.push(index, "Instalador");
        }
      });

Вернуть

Can not assign an argument of type "number" to the parameter of type "Profile"

Кто-нибудь знает, как добавить элементы в массив с помощью модели?

Укажите также ответ, который вы получаете. Мы не знаем, что response.body

SiddAjmera 19.06.2019 09:39

должно быть this.perfilesTodos.push({id: index; nombre: "Arson" });

Fateme Fazli 19.06.2019 09:40

Используя this.perfilesTodos.push({id: index; nombre: "Поджог" }); ошибка исправлена, но console.info(this.perfilesTodos) возвращает значение null. Ответ return [1, 2, 3, 4, 5]

El Hombre Sin Nombre 19.06.2019 09:45

сделайте это для всех элементов для push, например: this.perfilesTodos.push({id: index; nombre: "Instalador"}); на основе значения ответа ["тело"] ваш массив будет заполнен, запишите ответ ["тело"] и посмотрите, что это такое?

Fateme Fazli 19.06.2019 09:48

В этом случае return Невозможно прочитать свойство «push» неопределенного. response["body"].forEach((index: number) => { console.info(index); this.perfilesTodos.push({ id: index, descripcion: "Поджог" }); });

El Hombre Sin Nombre 19.06.2019 09:49
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
5
343
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вам нужно нажать базу объектов класса Profile форма или момент класса peofile

 perfilesTodos: Profile[] = []; // ? array default value

 response["body"].forEach((index: number) => {
        if (response["body"] == 1) {
          this.perfilesTodos.push({ id: index, nombre : "Arson");
        } else if (response["body"] == 2) {
          this.perfilesTodos.push({ id: index, nombre :"Administrador de entidad"});
        } else if (response["body"] == 3) {
          this.perfilesTodos.push({ id : index, nombre : "Administrador de grupo" });
        } else if (response["body"] == 4) {
          this.perfilesTodos.push({ id :index, nombre :"Gestor"});
        } else if (response["body"] == 5) {
          this.perfilesTodos.push({ id: index, nombre  :"Instalador"});
        }
      })

when you mark the perfilesTodos as profile array this mean all array item has to be base of that type shape so you need to push ethier an instant of profile class or an object has that same proprties

Вернуть «неопределенное» в консоли. Может быть, если .. еще не работает?

El Hombre Sin Nombre 19.06.2019 09:58

Я пробую такой простой код if (response["body"] == 1) { console.info("entra"); } в foreach и не проходит

El Hombre Sin Nombre 19.06.2019 09:59

@ElHombreSinNombre ошибка связана с методом проталкивания массива

Muhammed Albarmavi 19.06.2019 10:00

@ElHombreSinNombre, возможно, вам нужно инициализировать массив perfilesTodos с пустым массивом, проверьте мой ответ

Muhammed Albarmavi 19.06.2019 10:04
Ответ принят как подходящий

Это, безусловно, помогает понять, что push принимает аргументы типа varargs. Итак, ниже (как вы делаете в своем коде) будет добавлено множество элементов в список:

list.push(1,2,3,4,5);

Итак, что вам нужно сделать, это добавить Profile в список профилей.

this.perfilesTodos.push({ id: index, nombre : "Arson"});

Теперь, чтобы опустить все эти операторы if else, можно создать простой массив строк.

const data: string[] = ['Arson', 'Administrador de entidad', 'Administrador de grupo', 'Gestor', 'Instalador']

избавиться от всех if else и просто сделать

perfilesTodos: Profile[] = [];
response["body"].forEach((id: number) => {
    this.perfilesTodos.push({id, nombre: data[ response["body"] - 1 ]});
});

Конечно, вам также придется изменить тип nombre, так как нет такой вещи, как description — это строка.


Что все еще выглядит очень странно, так это то, что вы сначала перебираете `response['body'] как массив, а затем пытаетесь выполнить проверку на равенство для числа...

response["body"].forEach((id: number) => { this.perfilesTodos.push({ id, описание: "Поджог" }); }); по-видимому, работает, но мне нужно создать if.. else, чтобы установить имена с разными идентификаторами.

El Hombre Sin Nombre 19.06.2019 10:20

Нет, как я объяснил, вам не нужно @ElHombreSinNombre

baao 19.06.2019 10:23

В этом случае this.perfilesTodos.push({id, name: this.data[response["body"] - 1] }); вернуть нулевое имя, я исправляю его с помощью this.perfilesTodos.push({id, описание: this.data[id - 1] });

El Hombre Sin Nombre 19.06.2019 10:25

Другие вопросы по теме