Wie htmlwidgets in OpenCPU-Apps angezeigt werden?

9

Wir möchten ein htmlwidget in einer OpenCPU-Anwendung anzeigen. Das html wird von Leaflet ohne Probleme generiert, aber wir haben einige Probleme, es in der OpenCPU-App anzuzeigen. Wir haben die folgende Funktion verwendet, um die Leaflet Map zu generieren:

%Vor%

Das JavaScript ist wie folgt:

%Vor%

Jetzt zeigt die App den Leaflet-Rahmen, aber ich habe ein paar Probleme damit, den JSON von OpenCPU zu bekommen. Ich habe den folgenden Fehler erhalten: Keine Methode asJSON S3 class: htmlwidget . Ich habe auch versucht mit:

%Vor%

aber es scheint nicht zu funktionieren.

Der vollständige Code ist verfügbar unter Ссылка .

Vielen Dank für Ihre Hilfe und Glückwünsche für Ihre großartige Arbeit !!

    
arevaju 26.11.2015, 12:55
quelle

1 Antwort

1

Entschuldigung, das ist keine getestete Antwort, aber hier ist es leichter, einen vorgeschlagenen Ansatz zu erklären als in einem Kommentar.

Was ich vorschlage ist, dass Ihre Funktion leafmap1 reinen Text (HTML) anstelle des Leaflet-Objekts liefert.

Sie können sehen, dass das Leaflet-Objekt die Klasse htmlwidget erbt. Für diese Klasse gibt es eine Methode für die generische Funktion toHTML , die das Abrufen eines solchen HTML-Codes ermöglicht.

Angenommen, ein Flugblattobjekt:

%Vor%

Schauen wir uns seine Klasse an:

%Vor%

Erhalte das zugrundeliegende generierte HTML:

%Vor%

Der dritte Slot enthält Abhängigkeiten (javascript + css), also denke ich, dass diese bereits in Ihrem Bericht geladen sind.

Sie können die Verkettung der ersten beiden Komponenten (Funktionsergebnis) zurückgeben:

%Vor%     
Eric Lecoutre 11.10.2016 12:53
quelle

Tags und Links