Я бы попытался сделать родителя Boolean
, а затем каждый из PremiumContent
, SearchableText
, TwitterSearch
и Carousel
либо принял бы роль этого родительского логического значения, либо расширил его. Затем вы должны использовать это родительское логическое значение в шаблоне совпадения.
Так что-то вроде:
boolean (Parent) {}
и либо
boolean (PremiumContent) {
role-of (Parent)
}
boolean (SearchableText) {
role-of (Parent)
}
...
или
boolean (PremiumContent) {
extends (Parent)
}
boolean (SearchableText) {
extends (Parent)
}
...
и тогда ваш шаблон совпадения будет:
match: Parent
, а ваш on-submit
должен выглядеть примерно так:
on-submit {
goal: Parent
value-set: Parent {
viv.core.FormElement (premiumcontent)
viv.core.FormElement (searchabletext)
...
}
}
В качестве альтернативы вы можете создать структуру с четырьмя различными логическими свойствамиа затем использовать структуру в шаблоне совпадения. Так что-то вроде:
structure (Thing) {
property (premiumContent) {
type (PremiumContent)
}
...
}
И тогда ваш шаблон совпадения будет:
match: Thing
, и тогда ваш on-submit
будет:
on-submit {
goal: Thing
value: Thing {
premiumContent: viv.core.FormElement (premiumcontent)
...
}
}