Seaside: обратный вызов Ajax, а затем добавление элемента, отображаемого сервером?
Моя цель состоит в том, чтобы создать пункт меню (a span), который при нажатии делает три вещи. Во-первых, он устанавливает какое-то государство на сервер (addTurn), затем он создает новый элемент (renderEmptyTurnOn) на сервере и отправляет это к клиенту. Затем клиент, получив новый элемент, добавляет его к определенному элементу с помощью класса #zdTurns. Я хочу только одного. сервер туда и обратно.
Приведенный ниже код не работает, так как renderEmptyTurnOn ожидает холст, но я передаю ему сценарий. вместо.
Есть идиоматические способ сделать это с помощью ванили побережье и в jQuery?
renderMenuOn: h
h div
class: 'zdDialogMenu';
with: [
h span
onClick:
(h jQuery ajax
callback: [ self dialog addTurn ];
script: [ :s | s << ((s jQuery class: #zdTurns) append: (s jQuery html: (self renderEmptyTurnOn: s))) ]);
with: 'Add Turn' ]
1 ответ:
Ты почти прибил его. Аргумент сообщения
append:
в экземпляре jQuery принимает объект визуализации. Это может быть строка, морской компонент или блок. Это означает, что вы можете сделать это следующим образом:renderMenuOn: h h div class: 'zdDialogMenu'; with: [ h span onClick: (h jQuery ajax script: [ :s | self dialog addTurn. s << ((s jQuery class: 'zdTurns') append: [:r | self renderEmptyTurnOn: r ]) ]); with: 'Add Turn' ]