2

我有一个文本框和一个图像。当用户将文本插入文本框时,我想更改显示的图像。我的疑问是如何以 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 文件上实现所有这些。

有什么方法可以以更清洁的方式做到这一点?

4

1 回答 1

3

阿尔法特克,

你 100% 在做 MVVM。您无需将文本框连接到控制器,而是设置一个表示 src 的变量。

我已经审查了很多人的代码,他们在考虑做 MVVM 并继续混合 MVC 和 MVVM。

(也恭喜使用@load而不是@bind,它的逻辑,但奇怪的是很多人几乎可以使用所有东西@bind

没有更清洁的方法,但如果你真的想在你的 zul 中这样做,你可以使用<zscript>,但就我个人而言,那更丑陋。

问候寒意。

于 2014-02-20T20:10:06.437 回答