Seaside:Ajax 回调,然后附加服务器渲染元素?
Seaside: Ajax callback, then append server-rendered element?
我的目标是创建一个菜单项(一个跨度),单击该菜单项时
三件事。首先,它在服务器上设置一些状态(addTurn),然后
它在服务器上创建一个新元素 (renderEmptyTurnOn) 并发送
它给客户。然后客户收到新元素,
使用 class #zdTurns 将其附加到特定元素。我只想要一个
服务器往返。
下面的代码失败了,因为 renderEmptyTurnOn 需要 canvas,
但我传递给它的是一个脚本。
有没有一种惯用的方法可以使用 vanilla seaside 和
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' ]
你几乎成功了。 jQuery 实例上的 append:
消息的参数接受可渲染对象。这可以是字符串、Seaside 组件或块。这意味着您可以按如下方式进行:
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' ]
我的目标是创建一个菜单项(一个跨度),单击该菜单项时 三件事。首先,它在服务器上设置一些状态(addTurn),然后 它在服务器上创建一个新元素 (renderEmptyTurnOn) 并发送 它给客户。然后客户收到新元素, 使用 class #zdTurns 将其附加到特定元素。我只想要一个 服务器往返。
下面的代码失败了,因为 renderEmptyTurnOn 需要 canvas, 但我传递给它的是一个脚本。
有没有一种惯用的方法可以使用 vanilla seaside 和 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' ]
你几乎成功了。 jQuery 实例上的 append:
消息的参数接受可渲染对象。这可以是字符串、Seaside 组件或块。这意味着您可以按如下方式进行:
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' ]