为什么条件字段只接受预建函数?

why condition field only accepts pre-built functions?

BotFramework Composer 中的条件似乎只接受预建函数而不接受模板。

如果我们在 common.lg 上有这样的模板:

# ValidID(text)
- ${length(text)==9 && isMatch(text, ‘[A-Za-z]{1}[0-9]{7}’)}

我们可以像这样在SendMessage中使用例如:

- User’s Id: ${user.ID}, validation: ${ValidID(user.ID)}

但是,为什么不允许我们在条件 Branch/if 的条件文本框中使用我们的自定义函数“ValidID”?

Condition [${ValidID(user.ID)==true]

当我们尝试在条件 Composer 中使用时说 ValidID 不是预建函数或用户范围变量...

这是一个非常令人沮丧的限制,因为我们有很多模板,我们可以调用其他模板以简化复杂的验证,然后,当我们需要在某个条件下使用此验证时,我们需要展开所有模板仅使用预建功能和模板失去其实用性。

有人知道解决这个问题吗?

我们尝试使用 SetProperty 框将我们的模板分配给用户范围变量,但似乎我们有同样的限制。

我们将感谢任何类型的说明或帮助实现我们对此的期望,感谢所有每天在 BotFramework 上工作以使其变得更好的人。

对于 Stack Overflow 来说,这是一个有点奇怪的问题,因为你问的是只有技术的创造者才能回答的“为什么”问题,而不是技术的任何用户都能回答的“如何做”的问题可以回答。如果我不得不猜测,我会说这是一个疏忽,这意味着你应该 raise this as a bug. On the other hand if you think this is intended behavior then you should raise this as a feature request.

我怀疑除了像您所说的那样扩展模板之外还有什么“解决方法”。