找回密码
 立即注册

QQ登录

只需一步,快速开始

phoben 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-13 12:56  /   查看:2787  /  回复:13
1金币
单元格类型的插件,定义了一个List<Command>



插件中显示如下:


打开后:




我想请教官方大佬一下
如何在这个命令中,预置一个变量,相当于插件执行过程中会改变这个变量的值,等待结束后执行这个命令时,就可以引用值;

需求场景说明:
    我这是一个抽奖转盘的插件,用户可以定义一个转盘停止以后触发的命令,也就是上面的“结束后命令”,但要在这个命令中获取转盘停止后中奖的ID,在这里可以获得这个中奖ID,从而实现后续逻辑。
    之前做法是,中奖ID出来以后写到页面的单元格中,然后用户可以取这个格子的值,但是这样很繁琐,而且非常不安全,因为可以篡改。
所以我想利用7.100版本的前端变量来传送这个值。

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

13 个回复

倒序浏览
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-13 18:11:24
沙发
大佬,为什么不把计算中奖ID的逻辑直接放在服务端计算呢?前端取计算结果展示。
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-13 18:53:26
板凳
David.Zhong 发表于 2021-10-13 18:11
大佬,为什么不把计算中奖ID的逻辑直接放在服务端计算呢?前端取计算结果展示。

中奖是打算用服务端命令获取,还没有好的实现方法。
但我的这个问题重点不是这个,是如何把插件中的这个结束后命令,放一个参数。
   这么说吧,我们插件中预先设置的这个命令本质上就是一个回调函数对不对?那么给这个命令传参?

用代码表示就是

function  main (v , fun){
  fun(v)
}

function  run(data){
console.log(data)
}

main("abc" , run)

现在这个run实际就是我们的“结束后命令”,我怎么把这个data传给它???
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 10:26:21
地板
没有太理解大佬的意思,就算大佬能把前端变量传给后端,那么用户也是可以在前端修改变量或者伪造一个请求啊。把逻辑写在后端是有什么问题吗?
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 16:48:53
5#
David.Zhong 发表于 2021-10-14 10:26
没有太理解大佬的意思,就算大佬能把前端变量传给后端,那么用户也是可以在前端修改变量或者伪造一个请求啊 ...

没问题,我想问的并不是这个,我就是说,我们在插件里设置一系列的命令,这个命令里是否能传递一个参数进去?
就是回调命令的参数
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 16:51:08
6#
David.Zhong 发表于 2021-10-14 10:26
没有太理解大佬的意思,就算大佬能把前端变量传给后端,那么用户也是可以在前端修改变量或者伪造一个请求啊 ...

我们现在设置命令列表,完全是独立的,用户在前端触发命令列表的时候,不能传参数进去。
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 16:59:22
7#
David.Zhong 发表于 2021-10-14 10:26
没有太理解大佬的意思,就算大佬能把前端变量传给后端,那么用户也是可以在前端修改变量或者伪造一个请求啊 ...

或者我再问的更透一些,在C#里,我声明一个List<Command>的属性编辑器
我如何在这个编辑器里预先放好一个"自定义变量",让用户在设计器里添加命令的时候,可以调用这个变量?
至于变量的值,我会在插件运行过程中,给它赋上!

具体效果就是:
      用户编辑插件中的“结束后命令”,弹出命令窗口后,里面的命令在选值的时候可以看到一个叫做"LuckyId"的预置变量(代表中奖ID),然后用户可以读取这个变量得到中奖ID,然后自行做自己的逻辑;
      上面说的这个"LuckyId"变量的值,我会在命令触发前赋给它,也就是转盘在转动过程中,先会用HTTP请求得来中奖的ID,然后把中奖ID赋值给"LuckyId"变量,接着停止转盘,最后触发“结束后命令”
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 17:59:45
8#
phoben 发表于 2021-10-14 16:59
或者我再问的更透一些,在C#里,我声明一个List的属性编辑器
我如何在这个编辑器里预先放好一个"自定义 ...

大佬,确实有点被绕晕了。感觉已经脱离活字格,看.net框架支持不支持这样的功能了。建议大佬百度看看有没有更好的解决方案~
回复 使用道具 举报
phoben讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 18:17:11
9#
David.Zhong 发表于 2021-10-14 17:59
大佬,确实有点被绕晕了。感觉已经脱离活字格,看.net框架支持不支持这样的功能了。建议大佬百度看看有没 ...

服务端命令里  不是有个接口   可以定义一个变量?   我一直在用呢,而且现在100的版本,前端命令也能增加一个变量,这不都有接口吗?  能告诉我怎么用就行
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-14 18:32:29
10#
那个接口传的值不是从页面中来的吗?我知道大佬可以设置个LuckyId变量,传一个页面的单元格,引用这个单元格的值。但是大佬不是说不想把变量放到前端吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部