你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
从语言生成库中注入的函数
适用于:SDK v4
下面的文章详细介绍了如何从语言生成 (LG) 库中注入函数。
ActivityAttachment
返回基于对象和类型构造的 activityAttachment
。
ActivityAttachment(<collection-of-objects>)
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
<content> | 是 | 对象 (object) | 包含附件信息的对象 |
<type> | 是 | 字符串 | 表示附件类型的字符串 |
返回值 | 类型 | 说明 |
---|---|---|
<activityAttachment> | 对象 (object) | 由输入构成的 activityAttachment |
示例:
此示例将对象集合转换为 activityAttachment
。
假设有以下模板:
# externalHeroCardActivity(type, title, value)
[Activity
attachments = ${ActivityAttachment(json(fromFile('.\\herocard.json')), 'herocard')}
]
和以下 herocard.json
:
{
"title": "titleContent",
"text": "textContent",
"Buttons": [
{
"type": "imBack",
"Title": "titleContent",
"Value": "textContent",
"Text": "textContent"
}
],
"tap": {
"type": "${type}",
"title": "${title}",
"text": "${title}",
"value": "${value}"
}
}
通过调用 externalHeroCardActivity()
作为一个函数:
externalHeroCardActivity('signin', 'Signin Button', 'http://login.microsoft.com')
它将返回 herocard
:
{
"lgType" = "attachment",
"contenttype" = "herocard",
"content" = {
"title": "titleContent",
"text": "textContent",
"Buttons": [
{
"type": "imBack",
"Title": "titleContent",
"Value": "textContent",
"Text": "textContent"
}
],
"tap": {
"type": "signin",
"title": "Signin Button",
"text": "Signin Button",
"value": "http://login.microsoft.com"
}
}
}
expandText
评估对象中的纯文本并返回展开的文本数据。
expandText(<object>)
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
<object> | 是 | 对象 (object) | 要展开的对象(包含文本)。 |
返回值 | 类型 | 说明 |
---|---|---|
<evaluated-result> | object | 扩展的文本数据。 |
示例
此示例对 JSON 对象中的纯文本求值,并返回展开的文本结果。
假设你拥有以下对象:
{
"@answer": "hello ${user.name}",
"user": {
"name": "vivian"
}
}
调用 expandText(@answer)
将生成对象 hello vivian。
template
返回给定模板名称和范围的计算结果。
template(<templateName>, '<param1>', '<param2>', ...)
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
<templateName> | 是 | 字符串 | 表示模板名称的字符串 |
<param1>,<param2>, ... | 是 | 对象 | 传递给模板的参数 |
返回值 | 类型 | 说明 |
---|---|---|
<evaluated-result> | 对象 (object) | 从模板作为函数计算的结果 |
示例
此示例将计算将模板作为函数调用的结果。
假设有以下模板:
# welcome(userName)
- Hi ${userName}
- Hello ${userName}
- Hey ${userName}
调用 template("welcome", "DL")
将导致下列情况之一:
- Hi DL
- Hello DL
- Hey DL
fromFile
返回给定文件中表达式的计算结果。
fromFile(<filePath>)
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
<filePath> | 是 | 字符串 | 文件的相对路径或绝对路径包含表达式 |
返回值 | 类型 | 说明 |
---|---|---|
<result> | 字符串 | 计算结果的字符串表示形式 |
示例
此示例将计算给定文件的结果。
假设有一个名为 /home/user/test.txt
的文件。 文件中包含以下内容:
`you have ${add(1,2)} alarms`
fromFile('/home/user/test.txt')
fromFile()
函数将计算表达式,其结果将替换原始表达式。
调用 fromFile('/home/user/test.txt')
会出现字符串“你有 3 个警报”。
isTemplate
返回计算器中是否包含给定模板名称。
isTemplate(<templateName>)
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
<templateName> | 是 | 字符串 | 要检查的模板名称 |
返回值 | 类型 | 说明 |
---|---|---|
<result> | Boolean | 计算器中是否包含给定模板名称 |
示例
此示例使用 isTemplate()
函数来检查计算器中是否有给定模板名称。 例如,下面是三个模板:
# welcome
- hi
# show-alarms
- 7:am and 8:pm
# add-to-do
- you add a task at 7:pm
调用 isTemplate("welcome")
的求值结果为 true
。 调用 isTemplate("delete-to-do")
的求值结果为 false
。