Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away