2014-02-19 5 views
2

У меня есть текстовое поле и изображение. Когда пользователь вставляет текст в текстовое поле, я хочу изменить отображаемое изображение. Мое сомнение заключается в том, как это сделать способом MVVM и «чистым» способом (с учетом лучших практик).Использование ZK 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». В моей команде «search» я изменяю переменную imageSrc на правильное значение.

Мое решение кажется немного уродливым, поскольку мне нужно создать переменную на моей модели ViewModel. Я ожидал бы добиться всего этого в моем .zul файле.

Любой способ сделать это чище?

ответ

3

ALFATEK,

Вы 100% делает MVVM. Вы не подключаете текстовое поле к контроллеру, а устанавливаете переменную, представляющую src.

Я уже рассмотрел много кода людей, которые думают о MVVM и просто продолжают смешивать MVC и MVVM.

(также congratz использовать @load и не @bind, его логика, но достаточно странно Лота людей используют почти все @bind)

уборщик путь не существует, но если вы действительно хотите сделать это в вашей Зуле вы можете использовать <zscript>, но лично для меня это просто уродливее.

Greetz chill.

+0

благодарит за отзыв. Мой «зуд» создает новое поле для моего MVVM «просто» для этого, но я думаю, что это самый чистый способ. – AlfaTeK

+0

. Я знаю его странное в начале, но, с другой стороны, у вас нет ваших визуальных компонентов в вашем VM, как проводка текстового поля в mvc. – chillworld