EmberJS: перезагрузить / обновить представление после создания новой записи, используя jquery ajax вместо ember-data
Я создаю пример приложения todo, используя jquery для общения с остальными api вместо ember-data. Код приведен ниже. Я могу перечислить и добавить Todos, используя этот код. Но как только я создаю новую запись, мне нужно обновить браузер, чтобы увидеть новую запись. Как мне сделать контроллер, чтобы перезагрузить модель?
Вот маршрут
App.TodosRoute = Ember.Route.extend({
model: function() {
return Ember.$.getJSON("http://localhost:3000/todos");
}
});
Вот контроллер, где у меня есть действие, чтобы добавить новые задачи
App.TodosController = Ember.ArrayController.extend({
actions: {
addTodo: function(){
var newTodo=this.get('newTodo');
this.set('newTodo', '');
Ember.$.post("http://localhost:3000/todos",{todo: newTodo}));
}
}
});
Вот шаблон
<script type="text/x-handlebars" data-template-name="todos">
<legend>Todos</legend>
{{input type="text" id="new-todo" value=newTodo placeholder="Todo" action="addTodo" }}
<ul>
{{#each}}
<li><a href='#'>{{todo}}</a></li>
{{/each}}
</ul>
</script>
1 ответ
Решение
Добавить новую задачу в текущую модель маршрутов.
App.TodosController = Ember.ArrayController.extend({
actions: {
addTodo: function(){
var newTodo=this.get('newTodo');
this.set('newTodo', '');
self = this
Ember.$.post("http://localhost:3000/todos",{todo:newTodo}).then(function(response) {
self.addObject(response);
});
}
}
});