amis
amis copied to clipboard
Editor没有跟renderAmis里面props同样的context配置么?
实现场景:
在renderAmis props的context中写入权限鉴定方法,代码如下:
renderAmis(
schema,
{
// props...
locale: curLanguage, // 请参考「多语言」的文档
context: {
hasPermi:(permission: string): boolean =>{
//鉴权代码
}
}
存在的问题:
在Editor没有找到context类似的配置方式,不知道怎么可以同样的调用hasPermi进行鉴权。
当前方案:
当前未找到方案
AMIS 及 AMISEditor的版本为最新版本 6.0.0
export interface EditorProps extends PluginEventListener {
value: SchemaObject;
onChange: (value: SchemaObject) => void;
preview?: boolean;
isMobile?: boolean;
isSubEditor?: boolean;
autoFocus?: boolean;
className?: string;
$schemaUrl?: string;
schemas?: Array<any>;
theme?: string;
/** 应用语言类型 */
appLocale?: string;
/** 是否开启多语言 */
i18nEnabled?: boolean;
showCustomRenderersPanel?: boolean;
amisDocHost?: string;
superEditorData?: any;
withSuperDataSchema?: boolean;
/** 当前 Editor 为 SubEditor 时触发的宿主节点 */
hostNode?: EditorNodeType;
dataBindingChange?: (
value: string,
data: any,
manager?: EditorManager
) => void;
/**
* Preview 预览前可以修改配置。
* 比如把api地址替换成 proxy 地址。
*/
schemaFilter?: (schema: any, isPreview?: boolean) => any;
amisEnv?: RenderOptions;
/**
* 上下文数据,设置后,面板和脚手架表单里面可以取到这些值。
*/
ctx?: any;
data?: any;
/**
* 是否禁用内置插件
*/
disableBultinPlugin?: boolean;
/**
* 插件场景
*/
scene?: string;
disablePluginList?:
| Array<string>
| ((id: string, plugin: PluginClass) => boolean);
plugins?: Array<
| PluginClass
| [PluginClass, Record<string, any> | (() => Record<string, any>)]
>;
/**
* 传给预览器的其他属性
*/
previewProps?: any;
isHiddenProps?: (key: string) => boolean;
/**
* 事件动作面板相关配置
*/
actionOptions?: {
// 是否开启老动作配置入口
showOldEntry?: boolean;
/**
* 通用动作集(事件动作面板左侧动作树)
*/
actionTreeGetter?: (
actionTree: RendererPluginAction[]
) => RendererPluginAction[];
/**
* 自定义动作配置
*/
customActionGetter?: (manager: EditorManager) => {
[propName: string]: RendererPluginAction;
};
};
/** 上下文变量 */
variables?: VariableGroup[];
/** 变量配置 */
variableOptions?: VariableOptions;
onUndo?: () => void; // 用于触发外部 undo 事件
onRedo?: () => void; // 用于触发外部 redo 事件
onSave?: () => void; // 用于触发外部 save 事件
onPreview?: (preview: boolean) => void; // 用于触发外部 预览 事件
/** 打开公式编辑器之前触发的事件 */
onFormulaEditorOpen?: (
node: EditorNodeType,
manager: EditorManager,
ctx: Record<string, any>,
host?: {
node?: EditorNodeType;
manager?: EditorManager;
}
) => Promise<void | boolean>;
getHostNodeDataSchema?: () => Promise<any>;
getAvaiableContextFields?: (node: EditorNodeType) => Promise<any>;
}
我看他这个editor类型定义里面有ctx,和data参数,不知道能不能用