Funções injetadas da biblioteca de geração de linguagem

APLICA-SE A: SDK v4

O artigo a seguir fornece detalhes sobre como injetar funções da biblioteca LG (geração de linguagem).

ActivityAttachment

Retorna um activityAttachment construído com base em um objeto e um tipo.

ActivityAttachment(<collection-of-objects>)
Parâmetro Obrigatório Type Descrição
<content> Sim objeto Objeto que contém as informações do anexo
<tipo> Sim string Uma cadeia de caracteres que representa o tipo de anexo
Valor retornado Type Descrição
<activityAttachment> objeto Um activityAttachment formado com base nas entradas

Exemplo:

Este exemplo converte uma coleção de objetos em um activityAttachment.

Suponha que você tenha o seguinte modelo:

# externalHeroCardActivity(type, title, value)
[Activity
    attachments = ${ActivityAttachment(json(fromFile('.\\herocard.json')), 'herocard')}
]

e o seguinte herocard.json:

{
  "title": "titleContent",
  "text": "textContent",
  "Buttons": [
    {
      "type": "imBack",
      "Title": "titleContent",
      "Value": "textContent",
      "Text": "textContent"
    }
  ],
  "tap": {
    "type": "${type}",
    "title": "${title}",
    "text": "${title}",
    "value": "${value}"
  }
}

Chamando externalHeroCardActivity() como uma função:

externalHeroCardActivity('signin', 'Signin Button', 'http://login.microsoft.com')

Ele retorna um 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

Avalie o texto sem formatação em um objeto e retorne os dados de texto expandidos.

expandText(<object>)
Parâmetro Obrigatório Type Descrição
<object> Sim objeto O objeto com texto a ser expandido.
Valor retornado Type Descrição
<evaluated-result> objeto Os dados de texto expandidos.

Exemplo

Este exemplo avalia o texto sem formatação em um objeto JSON e retorna o resultado do texto expandido.

Digamos que você tenha o seguinte objeto:

{
  "@answer": "hello ${user.name}",
  "user": {
    "name": "vivian"
  }
}

Chamar expandText(@answer) resultará no objeto hello vivian.

template

Retorna o resultado avaliado de determinado nome de modelo e escopo.

template(<templateName>, '<param1>', '<param2>', ...)
Parâmetro Obrigatório Type Descrição
<templateName> Sim string Uma cadeia de caracteres que representa o nome do modelo
<param1>,<param2>, ... Sim Objeto Os parâmetros passados para o modelo
Valor retornado Type Descrição
<evaluated-result> objeto O resultado foi avaliado com base no modelo como uma função

Exemplo

Este exemplo avalia o resultado da chamada do modelo como uma função.

Suponha que você tenha o seguinte modelo:

# welcome(userName)
- Hi ${userName}
- Hello ${userName}
- Hey ${userName}

A chamada de template("welcome", "DL") resultará em um dos seguintes:

  • Oi, DL
  • Olá, DL
  • Ei, DL

fromFile

Retorna o resultado avaliado da expressão no arquivo fornecido.

fromFile(<filePath>)
Parâmetro Obrigatório Type Descrição
<filePath> Sim string o caminho relativo ou absoluto de um arquivo contém expressões
Valor retornado Type Descrição
<result> string A representação de cadeia de caracteres do resultado avaliado

Exemplo

Este exemplo avalia o resultado do arquivo fornecido.

Suponha que você tenha um arquivo chamado /home/user/test.txt. Dentro do arquivo, há o seguinte:

`you have ${add(1,2)} alarms`

fromFile('/home/user/test.txt')

A função fromFile() avaliará a expressão e o resultado substituirá a expressão original.

Chamar fromFile('/home/user/test.txt') resultara na cadeia de caracteres você tem três alarmes.

isTemplate

Retorna se determinado nome de modelo está incluído no avaliador.

isTemplate(<templateName>)
Parâmetro Obrigatório Type Descrição
<templateName> Sim String Um nome de modelo a ser verificado
Valor retornado Type Descrição
<result> Booliano Indica se o nome do modelo fornecido está incluído no avaliador

Exemplo

Este exemplo usa a função isTemplate() para verificar se determinado nome de modelo está no avaliador. Por exemplo, veja estes três modelos:

# welcome
- hi

# show-alarms
- 7:am and 8:pm

# add-to-do
- you add a task at 7:pm

A chamada de isTemplate("welcome") será avaliada como true. A chamada de isTemplate("delete-to-do") será avaliada como false.

Informações adicionais