Как использовать input-group для условного указания ввода? - PullRequest
1 голос
/ 13 июня 2019

Я пытаюсь использовать информацию о географическом местоположении пользователя по умолчанию , если она не указывает другое местоположение.Итак, «Что происходит» должно передавать информацию о геолокации в ее профиле.«Что происходит в Талсе» передает геолокационную информацию о Талсе.

Я использую группу ввода для этого:

 input-group (where) {
  requires (OneOf)
  collect {
    input (location) {
         min (Optional) max (One)
         type (viv.geo.NamedPoint)
          default-select {
             with-rule {
               select-first
            }
        }
      }
     input (myLocation) {
       min (Optional) max(One)
       type (viv.geo.GeoPoint)

       default-init {
         if ($user.currentLocation.$exists) {
           intent {
             goal: geo.GeoPoint
             value-set: geo.CurrentLocation { $expr ($user.currentLocation) }
           }
         } 
       }
     }
    }
  }

Это работает.

Но мне интересно, есть ли лучший способ сделать это?Есть ли способ сделать это с помощью более стандартной условной логики (например, оператор if / then или else в действии?

1 Ответ

3 голосов
/ 13 июня 2019

Возможно, вы захотите попробовать это, используя default-init, который обеспечивает ввод по умолчанию, если ничего не указано:

input (myLocation) {
       min (Required) max(One)
       type (viv.geo.GeoPoint)

       default-init {
         if ($user.currentLocation.$exists) {
           intent {
             goal: geo.GeoPoint
             value-set: geo.CurrentLocation { $expr ($user.currentLocation) }
           }
         } 
       }
...