与服务器协作
JavaScript Kanban 能够处理客户端和服务器端的数据。它没有特殊的后端要求,因此可连接到任何支持 REST API 的后端平台。
信息
该组件内置了 Go 和 Node 后端选项,同时也支持自定义服务器脚本。
RestDataProvider
JavaScript Kanban 提供了 RestDataProvider 服务,完全支持后端 REST API 操作。该服务便于与服务器通信,并可执行以下数据操作:
- "add-card"
- "add-column"
- "add-comment"
- "add-row"
- "add-link"
- "delete-card"
- "delete-column"
- "delete-comment"
- "delete-row"
- "delete-link"
- "move-card"
- "move-column"
- "move-row"
- "update-card"
- "update-column"
- "update-comment"
- "update-row"
REST 方法
RestDataProvider 服务包含多个用于动态加载数据的 REST 方法:
getCards()
- 返回 cards data 的 promisegetColumns()
- 返回 columns data 的 promisegetLinks()
- 返回 links data 的 promisegetRows()
- 返回 rows data 的 promisegetUsers()
- 返回 users data 的 promise
与后端交互
要连接服务器,只需将 RestDataProvider 关联 到您的服务器脚本。如果使用内置后端,可在以下位置找到:
您也可以自行搭建后端。
提示
如有自定义后端,请参阅 REST API routes 部分以获取更多信息。
连接 RestDataProvider 到后端非常简单:只需使用 kanban.RestDataProvider 构造函数,并传入服务器的 URL。
const url = "https://some_backend_url";
const restProvider = new kanban.RestDataProvider(url);
Promise.all([
restProvider.getUsers(),
restProvider.getCards(),
restProvider.getColumns(),
restProvider.getLinks(),
restProvider.getRows()
]).then(([users, cards, columns, links, rows]) => {
const board = new kanban.Kanban("#root", {
cards,
columns,
links,
rows,
rowKey: "type",
editorShape: [
...kanban.defaultEditorShape,
{
type: "multiselect",
key: "users",
label: "Users",
values: users
}
]
});
board.api.setNext(restProvider);
});
信息
要实现添加、删除等数据操作并将请求发送到服务器,RestDataProvider 需要通过 api.setNext() 加入 Event Bus 链。