home wiki.fukuchiharuki.me
Menu

キーワード

  • JavaScript
  • Object
  • get
  • save

概要

アプリケーションに定義したクラスのオブジェクトを更新します。

今回のサンプルは次のクラスを定義したものとしています(※Parse規定のカラムを除く)。

  • Post
    カラム
    titleString
    bodyString

サンプル

// オブジェクトを更新する
var update = function(id, title, body) {

	// クラス
	var Post = Parse.Object.extend('Post');

	// クエリ
	var query = new Parse.Query(Post);

	// 取得
	query.get(id, {
		success: function(post) {

			// 属性
			post.set('title', title);
			post.set('body', body);

			// 保存(更新)
			post.save();

			jQuery('#message').text('ポスト更新: ' + post.id);
		},
		error: function(post, error) {
			jQuery('#message').text('ERROR: ' + error.description);
		}
	});
};

// イベント処理(Parseとは直接関係ないところ)
jQuery('input[name=object-update-post]').click(function() {
	var id = jQuery('input[name=object-update-id]').val();
	var title = jQuery('input[name=object-update-title]').val();
	var body = jQuery('textarea[name=object-update-body]').val();
	if (id.length > 0 && title.length > 0 && body.length > 0) {
		update(id, title, body);
	} else {
		jQuery('#message').text('WARN: ' + 'idとtitleとbodyを入力してからfixしてね。');
	}
});

解説

Parse/オブジェクトを取得するParse/オブジェクトを保存する の合わせ技です。

object.save()

引数なしでコールすると単に保存(更新)するだけです。

これは、 query.get(id, options) したオブジェクトでなくても新規にインスタンス生成したオブジェクトに id を指定することで、その id に該当するオブジェクトを更新することができます。

参考