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. 
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.
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 }); }