nekoko 様
修正箇所は沢山ありますが、一番気になっていたコンソールからのエラー確認ができているので安心しました。
今回のコードの内容ですと、下から2行目(14行目)がエラーで正解です。
エラーになった原因は、record や contents が即時関数のスコープの外にあるのが原因で undefind になってしまっています。
ちょっと字は汚いですが、簡易的に注釈を入れておきます。
また即時関数は、
(function() {
// ここに実行したい内容を記述
})(); // ()を抜くと即時関数は実行されない
上記の中の (function() { … })() この太字のかっこでくくられた部分を即時関数だと認識して頂ければと思います。
即時関数は cybozu 様の推奨ですので、この即時関数内で実行内容を記述するようにしましょう。
また、最初の方でスコープ外とお伝えしましたが、とりあえず今回は即時関数の外にある認識ぐらいで良いかと思います。
※スコープですが、実際はもう少しこまかいですが取り急ぎの認識でお願い致します。
イベントタイプの入れ方ですが、
var events = ['app.record.create.show', 'app.record.edit.show', 'app.record.create.change.支払日'];
// 上記の […この中にイベントタイプを記述する…]
// 記述するイベントタイプが多くなって長くなる場合
var events = [
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.支払日'
];
// このように一行ごとにイベントタイプを記述していく方法もあります。
上記で作成した events変数ですが、こちらを kintone.events.on の第一引数に設定すると実行する内容のトリガーとなります。
kintone.events.on(events, handler) // events変数を設置したので、events に設定した内容のイベントで handler が実行される
handler は主に実行する内容を関数として記述したものです。
関数とは function から始まるような奴がだいたい関数と今は認識すれば大丈夫かと思います。
今回お伝えしている内容は、開発ツールのコンソールにレコードの内容を表示すること。
という内容ですので、handler として以下の様に関数を記述することができます。
function(event) {
console.log(event.record);
}
// 上記を handler変数へ代入する場合
var handler = function(event) {
console.log(event.record);
}
// handler変数を定義したので kintone.event.on の第二引数で利用できる状態になりました。
// events変数も定義されていると仮定して
kintone.events.on(events, handler);
// これでレコードの内容が表示されるということになります。
// 関数を変数に代入しない場合(今回は、handler変数に代入しない場合)
// kintone.events.on の第二引数へ直接関数を記述する方法があります。
kintone.events.on(events, function(event) {
console.log(event.record);
}
このような記述の仕方ですね。
ちょっと難しいかもしれません。
おそらく頭があっちこっちへ行ってると思いますので、いままでお伝えした内容をまとめると、
// 即時関数
(function() {
'use strict'; // ストリックモード
// イベントタイプの定義
var events = [
'app.record.create.show',
'app.record.edit.show',
'app.record.create.change.支払日'
];
// イベントタイプが ture の時にレコードの内容をコンソールに表示する。
kintone.events.on(events, function(event) {
console.log(event.record);
});
})();
少し認識が違う部分があるかもしれませんが、この説明で理解ができない部分などありましたらご質問下さい。