Главная

Webmacter V.2 Всё для вебмастера » Уроки по JS » Backbone.js 23 – сохранение данных на сервер

Backbone.js 23 – сохранение данных на сервер

Backbone.js 23 – сохранение данных на сервер


В данном скринкасте рассмотрим как сохранять на сервер данные, созданные на клиенте.




Начнем с того, что создадим пустую модель и добавим в нее title:
var task = new App.Models.Task();
task.set({title: "Новая задача"});

Теперь не забудем удалить из нашей модели айдишник, заданный в атрибутах по умолчанию. Так как backbone, видя айдишник автоматически добавляет его в урл и меняет запрос на put, при вызове метода save. Нам же нужен обычный post, без указания айдишника. Айдишник сгенерится автоматически в базе данных:
App.Models.Task = Backbone.Model.extend({
	defaults: {
		title: '',
		completed: 0
	},

	urlRoot: '/tasks'
});

И сразу же вызываем в консоли метод save:
task.save();

Отправляется post запрос на сервер. Осталось только принять его. В роуте создаем новую запись в БД. И возвращаем на клиент модель уже с айдишником:
Route::post('/tasks', function() {
	$input =  Input::json();

	$newTask = Mission::create( array(
		'title'=> $input->title,
		'completed'=> $input->completed
	));

	$newTaskArray = array(
		'id'=> $newTask->id,
		'title'=> $input->title,
		'completed'=> $input->completed
	);

	return json_encode($newTaskArray);

});

Проверим в БД. Строка создана. Еще раз поэкспериментируем в консоли с добавлением и изменением добавленной модели. У убедимся в том, что Backbone при создании отправляет post запрос, а при изменении put, при использовании одного и того же метода save. На этом все.

Источник:loftblog
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.