Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

313
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!