2 votes

Comment faire fonctionner les composants SimpleTable ?

J'ai téléchargé un petit exemple de SimpleTable :

https://gist.github.com/1080278

Maintenant, il compile mais quand je lance le serveur, j'obtiens ce :

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

Quelqu'un pourrait-il m'aider en m'expliquant comment nous devons utiliser ces composants ? Et aussi en m'expliquant ce qui est faux dans mon exemple...

PS : Je vais corriger le fichier gist, avec votre réponse... Ensuite, je prendrai la première révision de la gist pour voir le fichier erroné, et j'espère que la dernière révision de la gist sera très bientôt un excellent exemple sur la façon d'utiliser ces composants !

Merci pour votre future réponse :)

3voto

blopblop Points 31

La fonction CSimpleTable.create est une fonction réservée au client. Il est donc absurde de l'appeler à un niveau supérieur, puisque aucun client n'est encore connecté.

Je ne sais pas pourquoi les choses sont conçues de cette manière, mais cela signifie que le client doit d'abord recevoir la page, et qu'ensuite vous pouvez y placer votre tableau. Par exemple, il suffit de remplacer la fin de votre fichier (commençant par table = ...) par ceci pour résoudre le problème :

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}/>)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X