我有一个文本框和一个图像。当用户在文本框中插入文本时,我想更改显示的图像。我怀疑的是如何以MVVM的方式和“干净”的方式(按照最佳实践)这样做。
<textbox id="searchTextbox" onChanging="@command('search')"/>
<image id="searchImage" src="/img/textbox/search-icon.png" ca:blueeyename="searchImage" />
我必须实现这一目标,这似乎是“麻烦的”:将图像更改为:
<image id="searchImage" src="@load(vm.imageSrc)" ca:blueeyename="searchImage" />
然后在我的viewModel中我有“imageSrc”变量。在我的“搜索”命令中,我将imageSrc变量更改为正确的值。
我的解决方案似乎有点难看,因为我必须在我的ViewModel上创建一个变量。我期望在我的.zul文件中实现所有这些。
以更干净的方式做任何事情?
答案 0 :(得分:3)
AlfaTeK,
你100%做MVVM。您没有将文本框连接到控制器,而是设置一个代表src的变量。
我已经回顾了许多想要做MVVM的人的代码,并且只是继续混合使用MVC和MVVM。
(也祝贺使用@load
而不是@bind
,它的逻辑很奇怪但很多人用于几乎所有的@bind
)
一个更干净的方式不存在,但如果你真的想在你的zul中做到这一点,你可以使用<zscript>
,但对我而言,这只是更加丑陋。
Greetz chill。