Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

320
Visualizações
Cómo agregar una parte de la API adquirida a la matriz definida en el componente

Para aprender, estoy tratando de crear una aplicación Todo simple usando Angular 2 + Django Rest Framework.
Para mostrar inmediatamente los elementos guardados en el formulario de entrada, quiero implementar la función de adquirir el último y mostrarlo.

La API WEB en formato JSON para adquirir la última tiene la siguiente estructura. ingrese la descripción de la imagen aquí

la función para obtener esta API se describe en todo.service.ts

 @Injectable() export class TodoService { todo: Todo[] = []; newtodo: NewTodo[] = []; private Url = `http://127.0.0.1:8000/api/todo/` private headers = new Headers({'Content-Type': 'application/json'}); constructor( private http: Http ){} // Acquire one latest todo added getNewTodo(): Promise<NewTodo[]> { return this.http .get(this.Url+"?limit=1") .toPromise() .then(res => res.json()) .catch(this.handleError) }

Los componentes se describen en todo.component.ts

 @Component({ selector: 'todo-list', templateUrl: '../templates/todo-list.component.html', styleUrls: ['../static/todo-list.component.css'] }) export class TodoListComponent { todos: Todo[] = []; newtodo: NewTodo[] = []; newtodos: Todo[] = []; @Input() todo: Todo = new Todo(); save(): void { this.todoService .create(this.todo); } }

El punto que quiero enseñar son los siguientes puntos.
1. Ejecute getNewTodo () del servicio cuando se ejecute save () del componente y almacene el valor de retorno obtenido en la matriz newtodo .
2. Dado que solo la parte de resultados es necesaria para el JSON adquirido, extraiga la parte de resultados, empújela a la matriz newtodos y pásela a html.

Para 1, creo que deberías escribir la siguiente descripción en save ()

 this.todoService .getNewTodo() .then(newtodo => this.newtodo = newtodo);

No puedo entender qué escribir sobre 2. Me gustaría decirte cómo resolverlo.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede ingresar al JSON y obtener el contenido de los results con lo siguiente:

 getNewTodo(): Promise<NewTodo[]> { return this.http .get(this.Url+"?limit=1") .toPromise() .then(res => res.json().results) // here .catch(this.handleError) }

No está mostrando el uso del método create en el servicio, pero sea lo que sea, devuelva una promesa, de modo que nosotros en el componente podamos dentro de la devolución de llamada llamar a getNewTodo :

 save() { this.todoService .create(this.todo) .then(data => { this.getNewTodo(); // here }) }

y el getNewTodo que llama al método en el servicio:

 getNewTodo() { this.todoService .getNewTodo() .then(newtodo => { this.newtodo = newtodo }); }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda