как передать свойство структуры с помощью метода, аналогичного Bixby onclick - PullRequest
0 голосов
/ 24 января 2020

В режиме просмотра результатов Bixby в режиме Detail я хочу предоставить пользователю возможность выбрать одно или несколько действий и передать скрытый параметр «идентификатор», который соответствует имени поля базы данных для включения в http запрос, сделанный действием.

layout {
  match: AltBrainsData (this)

  mode (Details)

  content{

            section {
          content {
            image {
               //aspect-ratio (16:9)
               url {
       template ("#{value(this.icon_image)}")
        }
            }
          }
        }

        section {
          content {

              title-area {
                  slot1 {
                    text("[#{value(this.name)}]")
                    {style(Title_M)}
                  }
                }

          }
        }
        section {
          content {
            paragraph { value ("#{value(this.description)}") style (Detail_L) }
          }
        }
        section {
          content { 
           cell-card {
              slot2 {
              content {
                order (PrimarySecondary)
                primary ("Show me the latest news headlines")

              }
}
             on-click {
               intent {
                   goal: altbrains.persistencetest.GetNews
                   value: altbrains.persistencetest.AltBrainsData("#{value(this.identifier)}")
               }
              }
            }
          }
        }
        ...

Я получаю сообщение о том, что значение должно быть примитивным.

Как я могу выполнить sh это? По сути, я хочу, чтобы в карточке «Детали» результата было указано одно или несколько возможных действий, и каждое действие должно передавать этот идентификатор соответствующей функции в коде /.

Немного сложно включить все необходимые биты и кусочки в стек переполнения. Денежная часть функции GetNews:

function getNews(AltBrainsData) {

  const url = properties.get("config", "baseUrl") + "content"
  console.log("i got this far and the url is ", url);
  const query = {
    apikey: properties.get("secret", "apiKey"),
     q: "{\"" + "identifier" + "\":\"" + AltBrainsData.identifier + "\"}"

  }

1 Ответ

3 голосов
/ 25 января 2020

Изменить на следующее:

             on-click {
               intent {
                   goal: altbrains.persistencetest.GetNews
                   value: $expr(this)
               }
              }

Подробнее о синтаксисе $expr() можно прочитать на языке выражений

...