- 您可以使用 a
match-pattern
来实现这一点。
- 生日是 viv.contact 库的一部分,但在 viv.self 库中不可用。
在您的操作中,创建一个额外的类型属性time.Date
(或带有role-of
of的概念time.Date
)来保存生日。
下面是代码的样子。
action (GetBirthDate) {
type(Constructor)
description (Collect the date selected by a user)
collect {
input (usersBirthday) {
type (BirthDate)
min (Required) max (One)
default-init {
intent {
// TO-DO Get the birthday with an intent
}
}
}
// This input will hold the value entered by the user
computed-input (birthDate) {
type (BirthDate)
min (Required) max (One)
compute {
intent {
goal: BirthDate
}
}
}
} output (BirthDate)
}
上面代码中使用的 BirthDate 概念如下所示
structure (BirthDate) {
description (__DESCRIPTION__)
role-of (time.Date)
}
您的输入视图将如下所示。这定义了match-pattern
当我们需要 BirthDate 的输入视图并且 BirthDate 用作返回到操作的输入时调用的。
在此处查看匹配模式:https ://bixbydevelopers.com/dev/docs/dev-guide/developers/customizing-plan.match-patterns
input-view {
match: BirthDate (this) {
to-input {
GetBirthDate (action)
}
}
render {
date-picker {
initial-value (action.usersBirthday)
restrictions {
// allow selection 80 Years Ago
min-allowed ("subtractDuration(now().date, 'P80Y')")
// to allow selection 18 Years Ago
max-allowed ("subtractDuration(now().date, 'P18Y')")
}
}
}
}