@load() 和 ${} 有什么区别
What difference between @load() and ${}
代码:
<zk>
<vbox r="@ref(1)">
<label value="${empty r}" />
<label value="@load(empty r)" />
</vbox>
</zk>
returns:
true
false
${} 无法使用@ref()?
简答:不,不是。
首先,如果您希望自动更新值,请使用 @load(...)
,因为 ${...}
中的静态表达式仅计算一次。
其次,绑定注释@init/@load 在 ZK Bind 生命周期中比静态 EL 表达式计算得晚。
所以 ZK 首先尝试评估你的 ${empty r}
,此时 r 未定义,因此 ${empty r}
为空。
然后在生命周期的后期,它将处理数据绑定注释 @.
代码:
<zk>
<vbox r="@ref(1)">
<label value="${empty r}" />
<label value="@load(empty r)" />
</vbox>
</zk>
returns:
true
false
${} 无法使用@ref()?
简答:不,不是。
首先,如果您希望自动更新值,请使用 @load(...)
,因为 ${...}
中的静态表达式仅计算一次。
其次,绑定注释@init/@load 在 ZK Bind 生命周期中比静态 EL 表达式计算得晚。
所以 ZK 首先尝试评估你的 ${empty r}
,此时 r 未定义,因此 ${empty r}
为空。
然后在生命周期的后期,它将处理数据绑定注释 @.