Je voudrais que mon gadget ait deux vues différentes: Une quand il vient d'être ajouté, pour laisser l'utilisateur entrer des informations, et, une fois qu'il a terminé avec , une autre qui affiche des données basées sur ces informations.Pour un gadget Google Wave, existe-t-il un point défini auquel vous pouvez modifier l'interface utilisateur?
Le premier point auquel je peux décider lequel de ces deux affichages doit être est lorsque je reçois l'état pour la première fois, c'est-à-dire dans l'état . Cependant, lorsque je change l'interface utilisateur, cela ne s'affiche pas toujours - il semble y avoir des problèmes de synchronisation. Parfois, l'interface utilisateur ne s'affiche pas du tout, parfois il apparaît ok, parfois il apparaît en face de l'animation de chargement de gadget.
Voici un exemple simple de test:
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Trivial" height="120">
<Require feature="wave" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
function createForm() {
document.write("<div id=\"form\">");
document.write("Username: <input type=text value=\"whatever\" id=\"user_name\">");
document.write("<input type=button value=\"Go!\" onClick=\"fetchFromUsername()\"><br>");
document.write("NSID: <input type=text value=\"[email protected]\" id=\"user_id\">");
document.write("<input type=button value=\"Go!\" onClick=\"fetchFromNSID()\"><br>");
document.write("Number of photos: <input type=text value=\"3\" id=\"per_page\">");
document.write("</div>");
}
</script>
<script type="text/javascript">
function stateUpdated() {
createForm();
}
function init() {
if (wave && wave.isInWaveContainer()) {
wave.setStateCallback (stateUpdated);
}
}
gadgets.util.registerOnLoadHandler(init);
</script>
]]>
</Content>
</Module>
Où est la deuxième vue dans ce code? – Natim
Il n'y a pas d'autre vue. Ce que j'essaie d'accomplir avec ce code est de modifier l'interface utilisateur de façon dynamique une fois le gadget chargé. Si je peux le faire, je peux faire apparaître l'un ou l'autre. Mais même ce cas de test simple ne fonctionne pas de manière fiable. –
J'ai déjà développé pour Wave. Le problème pourrait se trouver dans document.write. Pouvez-vous créer vos éléments via document.createElement ("element") puis les ajouter à leur conteneur? Cela pourrait résoudre vos problèmes de synchronisation. –