Data Binding"
m (replace tt with code (via JWB)) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ZKDevelopersReferencePageHeader}} | {{ZKDevelopersReferencePageHeader}} | ||
+ | {{Deprecated | url=[http://books.zkoss.org/zk-mvvm-book/8.0/syntax/data_binding.html zk-mvvm-book/8.0/syntax/data_binding]|}} | ||
Line 10: | Line 11: | ||
Basically, the syntax consists of an annotation name with comma-separated key-value pairs. The binder treats an annotation's attribute value as an EL expression, and sets an EL expression without a attribute name to default attribute name "value". All annotations must define default attribute's value. | Basically, the syntax consists of an annotation name with comma-separated key-value pairs. The binder treats an annotation's attribute value as an EL expression, and sets an EL expression without a attribute name to default attribute name "value". All annotations must define default attribute's value. | ||
− | For each ZK Bind supported annotation, the way a binder evaluates an EL expression is slightly different. Some annotation's EL expressions are evaluated only once like < | + | For each ZK Bind supported annotation, the way a binder evaluates an EL expression is slightly different. Some annotation's EL expressions are evaluated only once like <code>@id</code> and <code>@init</code>. some annotations have reserved attribute names, "before" and "after", like <code>@load</code> and <code>@save</code>. |
Line 16: | Line 17: | ||
− | * '''< | + | * '''<code>@</code>''[AnnotationName]''<code>(</code> ''[EvaluateOnce EL-expression]'' <code>)</code> ''' |
;''[AnnotationName]'' | ;''[AnnotationName]'' | ||
Line 28: | Line 29: | ||
− | * '''< | + | * '''<code>@</code>''[AnnotationName]''<code>(</code> ''[EL-expression]'' <code>)</code> ''' |
;''[AnnotationName]'' | ;''[AnnotationName]'' | ||
Line 34: | Line 35: | ||
;''[EL-expression]'' | ;''[EL-expression]'' | ||
− | :It could be any ZK allowed EL expression (an internal link to EL) without < | + | :It could be any ZK allowed EL expression (an internal link to EL) without <code>${ }</code> enclosed. |
− | * '''< | + | * '''<code>@</code>''[AnnotationName]''<code>(</code> ''[EL-expression], [conditionKeyword]=[EvaluateOnce EL-expression]'' <code>)</code> ''' |
;''[AnnotationName]'' | ;''[AnnotationName]'' | ||
Line 52: | Line 53: | ||
;''[EvaluateOnce EL-expression]'' | ;''[EvaluateOnce EL-expression]'' | ||
: The evaluation result must be one or more command name. | : The evaluation result must be one or more command name. | ||
− | : Command name must correspond to the name specified in Java annotation < | + | : Command name must correspond to the name specified in Java annotation <code>@Command</code> in a ViewModel. |
− | * '''< | + | * '''<code>@</code>''[AnnotationName]''<code>(</code> ''[EL-expression], [arbitraryKey]=[EL-expression]'' <code>)</code> ''' |
;''[AnnotationName]'' | ;''[AnnotationName]'' |
Latest revision as of 15:05, 12 January 2022
This article is out of date, please refer to zk-mvvm-book/8.0/syntax/data_binding for more up to date information.
In the following sections, we'll cover ZK Bind's annotations used on a ZUL. They are all used in component's attribute and have general format described in Annotate in ZUML:
@AnnotationName(attr-value1, attr-name2=attr-value2)
@AnnotationName(attr-name1={attr-value1-1, attr-value1-2}, attr-name2=attr-value2)
Basically, the syntax consists of an annotation name with comma-separated key-value pairs. The binder treats an annotation's attribute value as an EL expression, and sets an EL expression without a attribute name to default attribute name "value". All annotations must define default attribute's value.
For each ZK Bind supported annotation, the way a binder evaluates an EL expression is slightly different. Some annotation's EL expressions are evaluated only once like @id
and @init
. some annotations have reserved attribute names, "before" and "after", like @load
and @save
.