如何让SimpleTable组件工作?

时间:2011-07-13 13:26:21

标签: opa

我上传了一些SimpleTable示例:

https://gist.github.com/1080278

现在,它编译但是当我启动服务器时,我明白了:

File "stdlib/core/rpc/core/oparpc.opa", line 360, characters 12-123, (360:12-360:123 | 10511-10622)
@fail: Invalid distant call to function (_v0_create_stdlib.components.simpletable) at File "stdlib/core/rpc/core/oparpc.opa", line 360, characters 69-81, (360:69-360:81 | 10568-10580): there seems to be no client connected
Error: uncaught OPA exception {fail: $"Invalid distant call to function (_v0_create_stdlib.components.simpletable) at File \"stdlib/core/rpc...pa\", line 360, characters 69-81, (360:69-360:81 | 10568-10580): there seems to be no client connecte"$; position: $"File \"stdlib/core/rpc/core/oparpc.opa\", line 360, characters 12-123, (360:12-360:123 | 10511-10622)"$}
*** Stack trace:
Fatal error: exception Scheduler.Empty

有人可以通过解释我们如何使用这些组件来帮助我吗? 并且通过向我解释我的例子中的错误......

PS:我会用你的答案更正gist文件......然后拿出要点的第一个修订版来查看假文件,而且我正在跳过最后一个修改版本的很快就会很好的样本关于如何使用这个组件!

感谢你们未来的回答:)

1 个答案:

答案 0 :(得分:3)

CSimpleTable.create函数是一个仅限客户端的函数。因此,在顶层调用它是没有意义的,因为你还没有连接任何客户端。

我不知道为什么事情是这样设计的,但这意味着客户必须先接收页面,然后才能将表格放入其中。 例如,简单地用文件的末尾替换文件的末尾(以table = ...开头)解决了这个问题:

onready(_) =
  Dom.transform([#something <- CSimpleTable.generate_page(CSimpleTable.create(config, id, callbacks, rows, els, display), "test")])
server = Server.one_page_server("test", -> <div id=#something onready={onready}/>)