Как получить доступ к vivContext, когда AccessVivContext не является целью? - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь сделать информацию vivContext доступной в моей капсуле.

Я посмотрел здесь: И я могу получить контекст в своей капсуле, если я установлю AccessVivContext в качестве цели обучающего высказывания. Но как мне получить к нему доступ вообще?

Я попытался просто ввести свойство vivContext в структуру, которую возвращает мое действие.

action (myAction) {
  description (do the thing)
  type (Search)
  collect {
    input (locale) { // this is in vivContext
      ...

    }
  }
  output(myOutput)
} 

и я определил примитивный тип "locale", который будет возвращен в структуре myOutput:

structure (myOutput) {
  description (...)
   property (locale) {
     type (locale) // hoping to return $vivContext.locale here
     min (Required) max (One)
  }
}

Но, похоже, это не вызов AccessVivContext.js для получения контекста.

1 Ответ

4 голосов
/ 21 июня 2019

Вы определили конечную точку? $ vivContext - это специальная переменная, которую вы можете определить на уровне javascript. Не нужно передавать это от действия. Вот как я бы предложил это кодировать.

  1. Определить действие

action (GetLocale) { тип (конструктор) выход (Язык) }

  1. Определить понятие

текст (Locale)

  1. Определить getLocale.js

module.exports.function = function getLocale ($ vivContext) { return $ vivContext.locale; }

  1. Сопоставьте свое действие с кодом Javascript

action-endpoints { конечная точка действия (GetLocale) { Принятые входные данные ($ vivContext) локальная конечная точка ("getLocale.js") } }

https://bixbydevelopers.com/dev/docs/sample-capsules/samples/user-context

...