如何使用输入组有条件地指定输入?
How to use input-group to specify input conditionally?
我正在尝试使用用户的默认地理位置信息除非她指定了不同的位置。因此,"What's happening" 应该在她的个人资料中传递地理位置信息。 "What's happening in Tulsa" 传递有关塔尔萨的地理位置信息。
我正在使用输入组来执行此操作:
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 或 unless 动作中的语句?
您可能想尝试使用 default-init
,如果提供 none,它会提供默认输入:
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) }
}
}
}
我正在尝试使用用户的默认地理位置信息除非她指定了不同的位置。因此,"What's happening" 应该在她的个人资料中传递地理位置信息。 "What's happening in Tulsa" 传递有关塔尔萨的地理位置信息。
我正在使用输入组来执行此操作:
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 或 unless 动作中的语句?
您可能想尝试使用 default-init
,如果提供 none,它会提供默认输入:
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) }
}
}
}