我在zk的世界新手,所以我怀疑...我已经阅读了zk 8文档(几乎所有)。在办公室,一些合作伙伴正在使用ViewModel,但在一些组件内部正在使用Composer(selectorComposer)绑定一些这样的元素:
<div apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('com.some.package.SomeViewModel')">
<vbox>
... SOME ANOTHER ELEMENTS ....
<div apply="com.some.package.SomeComposer">
<hbox>
<vbox>
<checkbox ... more code...
</checkbox>
</vbox>
</hbox>
</div>
</vbox>
</div>
我读到如果你应用SelectorComposer你就失去了耦合......那么在ViewModel中选择SelectComposer的原因是什么?或者它是如何工作的?
非常感谢您的帮助。
答案 0 :(得分:1)
从我的角度来看SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
允许您以非常传统的方式重用Java代码。例如,您可以定义一个SelectComposer
功能,该功能将在相同类型的其他控件中重用,功能略有不同,并扩展AbstractController
。在这种方法中,您可以通过实现AbstractController
的方法(如SelectComposer
)来控制组件的生命周期。
但实际上你可以用纯MVVM做同样的事情,但是你应该使用doAfterCompose
或SelectComposer
之类的注释来代替@AfterCompose
的实现方法,你也可以扩展基类,要使用您的视图,您只需更改zul文件中的标记,例如:
@Init
我认为只是一个偏好问题,我更喜欢(我总是建议)使用纯MVVM,因为它可用,而且我没有找到任何我无法重复使用MVVM方法的功能。
参考文献: Include, Zk annotations