在日常开发者,有如下场景,需要dialog展示:1、ajax返回后需要通过dialog来展示一些信息,如果使用按钮,交互不太友好2、进入某个页面时,需要用dialog来展示一些提示信息
z9gpfhce1#
按照我的理解amis在逻辑上可以分为行为和ui两大部分,行为又分主动行为和被动行为,主动行为的代表是action,被动行为的代表是service。
你提到的第一个场景没有说明主动行为和被动行为触发弹框的,如果是主动行为触发,现在可以通过在action里设置feedback属性来实现。
第二个场景基本上可以确定是被动行为触发,我觉得还是要详细说一下必须要通过dialog而不是alert等来展示提示信息的必要性。
我能想到的更具体的场景是一些表单在开始填写之前先展示一下注意事项(但是这种场景可以考虑用wizard),除此之外呢?还有没有更有力的理由?
PS:我是觉得从交互的角度来看,模态窗口的使用还是要克制的。
xpcnnkqh2#
@BeMxself 你好,就你说的第一个场景,在Ajax返回false的时候,好像是无法触发feedback的,如果这个时候需要拿data里面的一些具体的错误详情通过dialog来展示就无法主动触发,只能通过按钮,第二个场景如果使用alert来展示信息的话,用户感知其实是不太好的,使用dialog可以进行更多的交互场景
djmepvbi3#
我是service里面包了一个"type": "dialog"的组件,然后有visibleOn条件,这样当service请求返回值符合visibleOn条件就可以弹出dialog, 同理我觉得dialog组件应该是可以独立在页面上使用的
o0lyfsai4#
请问, 没有结合本身 react 的页面里有个自定义的组件, 这个组件点击了 onClick 怎么去触发弹出 amis 的 dialog 啊@BeMxself
r6vfmomb5#
你可以尝试访问amis渲染后返回的scope对象,这个scope对象里可以修改数据,也可以拿到某个具名amis组件的实例,结合@Joe-Zhang 的做法应该就可以实现了,但是对话框的返回和数据等怎么绑定我就不清楚了。
如果你的这个自定义组件是嵌在amis里可以尝试一下能不能在自定义组件中拿到ScopedContext
g0czyy6m6#
我试了,但是这样dialog好像是无法通过关闭按钮来进行关闭的
fkaflof67#
使用是可以独立使用的,但是无法关闭,触发关闭会报错,这个是不是框架内部本身存在的bug呢?报错信息如下:
7条答案
按热度按时间z9gpfhce1#
按照我的理解amis在逻辑上可以分为行为和ui两大部分,行为又分主动行为和被动行为,主动行为的代表是action,被动行为的代表是service。
你提到的第一个场景没有说明主动行为和被动行为触发弹框的,如果是主动行为触发,现在可以通过在action里设置feedback属性来实现。
第二个场景基本上可以确定是被动行为触发,我觉得还是要详细说一下必须要通过dialog而不是alert等来展示提示信息的必要性。
我能想到的更具体的场景是一些表单在开始填写之前先展示一下注意事项(但是这种场景可以考虑用wizard),除此之外呢?还有没有更有力的理由?
PS:我是觉得从交互的角度来看,模态窗口的使用还是要克制的。
xpcnnkqh2#
@BeMxself 你好,就你说的第一个场景,在Ajax返回false的时候,好像是无法触发feedback的,如果这个时候需要拿data里面的一些具体的错误详情通过dialog来展示就无法主动触发,只能通过按钮,第二个场景如果使用alert来展示信息的话,用户感知其实是不太好的,使用dialog可以进行更多的交互场景
djmepvbi3#
我是service里面包了一个"type": "dialog"的组件,然后有visibleOn条件,这样当service请求返回值符合visibleOn条件就可以弹出dialog, 同理我觉得dialog组件应该是可以独立在页面上使用的
o0lyfsai4#
请问, 没有结合本身 react 的页面里有个自定义的组件, 这个组件点击了 onClick 怎么去触发弹出 amis 的 dialog 啊@BeMxself
r6vfmomb5#
请问, 没有结合本身 react 的页面里有个自定义的组件, 这个组件点击了 onClick 怎么去触发弹出 amis 的 dialog 啊@BeMxself
你可以尝试访问amis渲染后返回的scope对象,这个scope对象里可以修改数据,也可以拿到某个具名amis组件的实例,结合@Joe-Zhang 的做法应该就可以实现了,但是对话框的返回和数据等怎么绑定我就不清楚了。
如果你的这个自定义组件是嵌在amis里可以尝试一下能不能在自定义组件中拿到ScopedContext
g0czyy6m6#
我是service里面包了一个"type": "dialog"的组件,然后有visibleOn条件,这样当service请求返回值符合visibleOn条件就可以弹出dialog, 同理我觉得dialog组件应该是可以独立在页面上使用的
我试了,但是这样dialog好像是无法通过关闭按钮来进行关闭的
fkaflof67#
使用是可以独立使用的,但是无法关闭,触发关闭会报错,这个是不是框架内部本身存在的bug呢?报错信息如下: