# 对象详情页JS插件

对象详情页JS插件允许开发人员定制对象详情的相关功能。

# 简单示例

export default class Plugin {
    apply() {
        return [
            {
                event: "detail.parse.before",
                functional: this.parseBefore.bind(this)
            }
        ];
    }
    renderBefore(context) {
        let data = context.data;

        data.name = 'Hello, Fxiaoke';

        return Promise.resolve(data);
    }
}

# 钩子

"钩子"(Hook)通常是指一种允许你在特定事件或状态发生时插入自定义代码的机制。

# detail.parse.before

该钩子在请求数据之后、解析数据之前调用。可以通过 context.data 获取请求接口后的数据。

示例:

export default class Plugin {
    apply() {
        return [
            {
                event: "detail.parse.before",
                functional: this.parseBefore.bind(this)
            }
        ];
    }
    renderBefore(context) {
        let data = context.data;

        // todo what you want

        console.log(data);

        return Promise.resolve(data);
    }
}

# 上下文

上下文(Context)通常是指特定事件或状态发生时提供的参数(特定和通用)和API(特定和通用)的集合。

# dataGetter.getDescribe()

获取当前对象的对象描述

示例:

export default class Plugin {
    apply() {
        return [
            {
                event: "detail.render.before",
                functional: this.renderBefore.bind(this)
            }
        ];
    }
    renderBefore(context) {
        let describe = context.dataGetter.getDescribe();
        console.log(describe);
        return Promise.resolve();
    }
}

# dataGetter.getData()

获取当前详情展示的对象字段数据

示例:

export default class Plugin {
    apply() {
        return [
            {
                event: "detail.render.before",
                functional: this.renderBefore.bind(this)
            }
        ];
    }
    renderBefore(context) {
        let data = context.dataGetter.getData();
        console.log(data);
        return Promise.resolve();
    }
}

# uiAction.refresh()

刷新当前详情(待开发)

# uiAction.fullScreen()

全屏展示详情(待开发)

# uiAction.nextPage()

查看下一条数据详情(待开发)

# uiAction.prevPage()

查看上一条数据详情(待开发)

# 其他

详情页JS插件(旧版)地址

lastUpdate: 10/30/2023, 4:58:58 PM