0
0

More than 5 years have passed since last update.

kintoneで非同期処理結果を受けて画面項目を変更する

Posted at

他のアプリから非同期にデータを取ってくる

kintone.api呼べばいい。

.js
kintone.api(path,'GET', data, function (resp) {
    // ここにデータ受信後の処理
    // var hoge = resp['records'][0]['hoge']['value'];
    // とか
});

画面項目をJavaScriptで変更する

なんらかのイベント発火を受けて処理するはずなので、そのコールバックのパラメータ「event」を使う。

.js
kintone.events.on('app.record.create.show', function (event) {
    // event['record']['hoge']['value'] = 'hoge';
    // とか
});

非同期通信の処理結果を受けて画面項目を変更する

ここまで書いたことの組み合わせで

.js
kintone.events.on('app.record.create.show', function (event) {
    kintone.api(path,'GET', data, function (resp) {
        // ここに代入分を記述
        // event['record']['hoge']['value'] = resp['records'][0]['hoge']['value'];
    });
});

これでできるよね!
・・・
できなかった (ノД`)・゜・。

デバッガで見ると確かにJavaScriptの変数上では想定通りに反映されている。
でも、画面には反映されない。。。

こうしましょう!

.js
kintone.events.on('app.record.create.show', function (event) {
    kintone.api(path,'GET', data, function (resp) {
        // ここに代入分を記述
        // event['record']['hoge']['value'] = resp['records'][0]['hoge']['value'];
        kintone.app.record.set(event);    // <--これ追加
    });
});

kintoneイベントの外で画面項目を更新したら自分で再設定用のメソッドを呼んでやる必要があるようです。
めんどくさいけど、わからなくもない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0