如何編寫事件處理

information

本頁面使用機器翻譯而成。
機器翻譯免責聲明 (External link)

目錄

註冊事件處理程式

通過將 kintone 中發生的各種事件與事件處理程式相關聯,可以進行任意處理。

它可在所有畫面上使用,包括應用程式與空間。 但是,粘貼到空間內文中的應用程式中不可用。

函數

PC/行動裝置

kintone.events.on(type, handler)

參數名稱

参数 類型 必須 說明
type 字串或陣列 (字串) 必須 与事件處理程式关联的事件的類型
它因事件而異。欲瞭解更多資訊,請查看相應的事件頁面。
handler 函數 必須 事件發生時運行的事件處理程式
作為參數傳遞給事件處理程式的事件物件對於每個事件都不同。欲瞭解更多資訊,請查看相應的活動頁面。
可支援 Promise 的事件,可以等待異步進程完成,然後再通過在事件處理程式返回 kintone.Promise 物件來控制表單的值。

返回值

示例代碼

1
2
3
4
5
6
7
8
kintone.events.on('app.record.index.show', (event) => {
  console.log(event);
});

// 如果要為多個事件註冊相同的事件處理程式
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], (event) => {
  console.log(event);
});

刪除事件處理程式

刪除與事件關聯的處理程式。

它可在所有畫面上使用,包括應用程式與空間。 但是,粘貼到空間內文中的應用程式中不可用。

函數

PC/行動裝置

kintone.events.off(type, handler)

參數

參數名稱 指定值 必須 說明
type 字串或陣列 (字串) 可省略 与事件處理程式关联的事件的類型
它因事件而異。欲瞭解更多資訊,請查看相應的活動頁面。
handler 函數 必須 事件發生時運行的事件處理程式
作為參數傳遞給事件處理程式的事件物件對於每個事件都不同。欲瞭解更多資訊,請查看相應的活動頁面。
可支援 Promise 的事件,可以等待異步進程完成,然後再通過在事件處理程式返回 kintone.Promise 物件來控制表單的值。

返回值

傳回以下選項之一:

  • true:如果您成功刪除了其中之一
  • false:如果未找到要刪除的事件處理程式

示例代碼

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
const handler = (event) => {
  console.log(event);
};
kintone.events.on('app.record.index.show', handler);

// 從指定的事件類型中刪除指定的處理程式
kintone.events.off('app.record.index.show', handler);

// 從指定的事件類型中刪除所有處理程式
kintone.events.off('app.record.index.show');

// 從所有事件類型中刪除所有處理程式
kintone.events.off();

注意事項

  • 截至 2017 年 5 月,為應用載入 JavaScript 檔案的順序如下:
    如果同一應用套用了應用 JavaScript 和外掛程式 JavaScript 檔案:
    1. 應用的 JavaScript 檔案
    2. 外掛程式 JavaScript 檔案
  • 事件處理程式僅添加,不會被覆蓋。
    這是通用的 JavaScript 規範,kintone 的 JavaScript API 也遵循該規範。
    如果要重寫它,請刪除配置的事件處理程式並註冊一個新事件。
  • 如果同一應用中存在同名的類別,則返回鍵名稱中包含"category"的物件可能會選擇非預期的類別。
    如果要選擇不需要的類別,請在返回之前刪除 Category 屬性。
    導致此行為的事件如下所示:
    • 記錄清單畫面
      • app.record.index.edit.submit
      • app.record.index.edit.change.欄位代碼
    • 新增記錄畫面
      • app.record.create.show
      • app.record.create.submit
      • app.record.create.change.欄位代碼
      • mobile.app.record.create.show
      • mobile.app.record.create.submit
      • mobile.app.record.create.change.欄位代碼
    • 編輯記錄畫面
      • app.record.edit.show
      • app.record.edit.submit
      • app.record.edit.change.欄位代碼
      • mobile.app.record.edit.show
      • mobile.app.record.edit.submit
      • mobile.app.record.edit.change.欄位代碼
    • 記錄詳情畫面
      • app.record.detail.process.proceed