Frage

Ich bin versucht, herauszufinden, wie zu aktualisieren, ein Wandteppich-zone über eine dynamische, client-side-driven "Kontext".Ich bin ziemlich neu in Gobelin -, und ich bin stecken mit 5.0 für jetzt.

Der wichtigste Grund HIERFÜR ist die Wiederverwendung andere Galerie-Komponente, wie ein Kind ein jquery-Dialogfeld, ohne zu schreiben, die Galerie Komponente.

Ein Haken ist, dass die zone, und alle Elemente, die es, am Ende innerhalb einer jquery-dialog.$jquery(...).dailog() neigt dazu, Ausschneiden/einfügen eines Elements in html an einen anderen Ort, der vielleicht etwas zu beschädigen.Ich habe jedoch nicht in der Lage gewesen, die Dinge arbeiten auch außerhalb eines jquery-dialog.

Hier ist was ich versucht habe, das schien nicht zu funktionieren (vielleicht habe ich es falsch):

  • Erstellen Sie eine eventlink an die zone, und ändern Sie die href.Tapestry scheint eine variable gespeichert, die irgendwo statt seufz.
  • Erstellen Sie eine t:form gebunden zone.Wenn ich versuche Sie zu aktualisieren, kann ich sagen, dass ein Serverseitiges Ereignis Auftritt, sondern die Galerie zone nicht verändern oder aktualisieren, wie es sollte.Die zone befindet sich außerhalb und getrennt von der form.Ich weiß nicht einmal sehen, die typische gelb blinken, wenn eine zone wird aktualisiert.
War es hilfreich?

Lösung

Ich fand einige Beispiel-code, der ziemlich viel löst mein problem;es war nicht die Arbeit, aber als ich tippte die Frage hier auf SO, ich sah, was falsch war.Da ist es wahrscheinlich jemand anderes hat dieses problem auch, ich poste die Antwort hier:

        var zoneId = "itemZone"; // tml was <t:zone id="itemZone"...>
        var zoneObject = Tapestry.findZoneManagerForZone(zoneId);
        zoneObject.updateFromURL(url);

Zu lösen die problem mit jquery .dialog () - verschieben von html habe ich auch das kopieren und die Erhaltung der zone manager wie diese:(wobei $J(...) ist meine Abkürzung für jquery, um zu vermeiden, Prototyp Konflikte)

    prototypeStorageObj = $T("itemZone");
    zoneManager = prototypeStorageObj.zoneManager;
    // jquery stuff that kills the prototype data storage.
    emailForm = $J("#myDialog");
    emailForm.dialog({ autoOpen: false, modal:true });
    emailForm.dialog('open');
    // restore the zone manager so the zone works again:
    $T("itemZone").zoneManager = zoneManager;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top