2013-08-26 4 views
0
<textbox id="nextTitleTextbox" readonly="true" value="@bind(ivm.inventory.successorTitleName)" /> 
<button id="nextTitleButton" label="..." mold="trendy" onClick="@command('chooseFormerOrSuccessor', isFormer = false)"/> 
<a  id="nextTitleHrefView" href="/inventory_new.do?method=edit&amp;docUID=${ivm.inventory.successorTitleName}">view</a> 
<a  id="nextTitleHrefHistory" href="javascript:showRenamingHistory(${ivm.inventory.successorTitleName},${ivm.inventory.successorTitleName})">history</a> 

Проблема в тегах 'a'. Текстовое поле и кнопки прекрасно работают, но ссылки в тегах 'a' не захватывают информацию из привязки, поэтому ссылка там выглядит как /inventory_new.do?method=edit&amp;docUID=. Я действительно не понимаю, что здесь не так, потому что я пробовал много сочетаний, и что-то подобное работает на других страницах. Где ошибка в этой привязке?Почему привязки не работают?

Я даже пытался поставить строку из ZScript

<zscript> 
     String successorTitleHref = "/inventory_new.do?method=edit&amp;docUID=" + ivm.inventory.successorTitleName; 
</zscript> 

Но есть исключение:

Typed variable declaration : Class or variable not found: ivm.inventory.replacementTitleName. 

Кроме того, он поддерживается контроль, который размещает в отдельном файле, и каждый подмешивать с использованием derective.

ответ

1

Связывание в ZK не имеет ничего общего с заменой переменных. @bind() не означает, что вы можете использовать ${...}. Эти два являются полностью отдельными понятиями, хотя оба они называются «EL Expression» в руководстве. Но binding EL Expression и ZUML EL Expressions - это две разные вещи.

Чтобы разрешить доступ к ivm в zscript, вам необходимо определить эту переменную где-нибудь в скрипте. Одним из способов является его экземпляр:

IVM ivm = new IVM(); 

или вы можете использовать custom variable resolver.