Text, der direkt in den Wrapper importiert wird, wird nicht zusammen mit der Komponente von der Leinwand entfernt. Zur Überprüfung kann man einfache Texte mehrfach in die Demo importieren und beobachten, wie sie sich kombinieren, anstatt die vorherige zu ersetzen. Das hinzuzufügen scheint zu helfen: Redakteur. DomComp...
artf
Ich folge deinem Beispiel nicht, kannst du bitte genaue Schritte zur Reproduktion erklären?
neon12345
Gehe zur Newsletter-Demo bei https://grapesjs.com/demo-newsletter-editor.html und benutze die Funktion "Vorlage importieren" mit einfachem Text wie "Hallo", aber ohne HTML (oder kombiniere sie mit HTML und Text auf Root-Ebene). Wiederholst...
artf
Danke @neon12345, ich konnte das Problem finden und es sollte in der nächsten Version behoben sein
Die Ausgabe von "JSON.stringify(editor.getComponents())" zeigt, dass der src eines Bildes zweimal gespeichert wird. { "type": "image", "Leer": wahr, "Status": "ausgewählt", "Inhalt": "", "Attribute": { "id": "iy3c7", "src": "data:image/png; base64,..." <--- 1. }, "src": "data:image/png; base64,...", <--- 2. "activeOnR...
artf
@longdoan7421 Ich denke, wir können es in der 'toJSON'-Methode löschen, wenn das 'src' gleich 'attribute.src' ist und sicherstellen, dass es beim Laden korrekt wieder geladen wird.
longdoan7421
Hallo @artf, Ich habe gerade kurz durch 'ComponentImage' geschaut. Ich denke, es ist möglich, die Eigenschaft 'src' im Image Model zu entfernen und den Code, der 'src' verwendet, in 'ComponentImage' und 'ComponentImageView' durch das 'attr...
Hallo, ich bin Anfänger im Weintrauben-SJ. Ich möchte eine Fragenummer bei for Loop machen, wenn ich Komponenten fallen gelassen habe, ↓Ich will das Finale wie dieses Bild. Der Div kann die Schleifennummer anzeigen. ! 01 ↓Der Code meiner Komponente Im Rendering habe ich mein Standard-HTML questionCom von {{i}} in Vord...
artf
Benutze das 'questionCom', das du an das Modell weitergibst (nutze das Modell, um modellbezogene Logik zu aktualisieren), und ich würde empfehlen, die API aus der Components-Dokumentation zu verwenden (z. B. 'textType.view.extend' ist die...
Hallo, Wir verwenden einige Twig-Template-Funktionen in unserer Grapesjs-Implementierung. wie: {% if variable == "value" %}<b>text</b>{% endif %} Aber aufgrund der toHtml()-Funktion in src/dom_components/model/ComponentTextNode.js wird diese in umgewandelt {% if variable == "e;value"e; %}<b>text</b>{% endif %}...
artf
Ja, klar, du kannst die 'textnode'-Komponente erweitern und deine toHTML-Funktion verwenden
Hallo, Es gelingt mir, einen neuen Typ mit einem klickbaren Bild zu erstellen. Leider wird der neue benutzerdefinierte Typ vom HTML-Parser beim Import nicht erkannt. Hier ist mein Quellcode für den neuen Typ: 'Redakteur. DomComponents.addType('imagelink', { isComponent: el => { if (el.tagName === 'DIV' && (typeof el.c...
Lerdouille
Hallo, Nur zur Info: Wenn ich versuche, die isComponent-Rückgabe mit einem in einem Plugin wie diesem definierten Typ zu ändern: 'isComponent: el => { if (el.tagName === 'DIV' && (typeof el.classList !== 'undefined' && el.classList.contain...
Lerdouille
Eine weitere Kuriosität, die logisch sein könnte... Wenn ich versuchen würde, eine exotische isComponent-Funktion so einzubauen: 'if (el.tagName === 'ABCDE') { return { type: 'imagelink' }; }` Und wenn ich versuche, diesen HTML-Text zu imp...
artf
Ich glaube, du verfehlst den Sinn der Komponenten. Du hast eine benutzerdefinierte ('imagelink') und dann eine innere ('img'), also zeigt der Editor sie an, und ich sehe hier keine Probleme. Um die Traits aus der benutzerdefinierten Kompon...
Hallo nochmal! Unser Team versucht in letzter Zeit, die Canvas von GrapesJS programmatisch zu aktualisieren ohne versehentlich ein 'Update'-Event auszulösen. Wenn unser Verständnis stimmt, würde das bedeuten, dass ein Aufruf von 'setStyle' oder 'setComponents' kein 'Update'-Ereignis auslöst, unabhängig von den aktuell...
artf
Ja, es könnte tatsächlich Sinn machen, bei diesen Methoden 'Optionen' zu haben, daher wäre eine PR willkommen.
editor.setComponents("html stiring"), Methode, die die HTML-Zeichenkette als Eingabe nimmt und diesen Code im HTML-Abschnitt im Code Manager setzt wenn wir ,<input data-gjs-type="myInput" type="text" required/>" an editor.setComponents übergeben, dann lautet die Ausgabe "<input data-gjs-type="myInput" type="text" requ...
artf
Für den Moment kannst du sie nur vermeiden, indem du die Komponentendefinition auf diese Weise hinzufügst '''js editor.addComponents({ TagName: 'input', Attribute: { type: 'text', erforderlich: true } }) ``` aber ich werde den HTML-Parser...
GrapesJS-Version verwendet: 0.16.12 (aktuell) Einfach ein seltsames Verhalten: Ich kann alle Attribute hinzufügen, die ich möchte, wenn ich Component direkt im Canvas mit der Dom components Add-Funktion (wie Code unten) hinzufüge, aber der Editor entfernt die Klasse immer. Die Klasse wird nur hinzugefügt, wenn wir zue...
artf
Ja, man muss die Eigenschaft 'classes' verwenden, aber ich stimme zu, dass das verwirrend ist (weil Klassen etwas anders behandelt werden), also versuche ich, die Initialisierung auch mit dem Wert 'attributes.class' möglich zu machen
Tatsächlich funktioniert der Code, den ich dir gebe, – um zu verstehen, was ich meine, probiere das hier:Fügt benutzerdefinierte Komponente in die Canvas ein, wie du gesagt hast, wird der CSS-".row"-Stil nicht geladenJetzt einen beliebigen...
Leozinho0
Hallo. Danke für die Antwort. Es funktioniert nicht. Wenn du https://grapesjs.com/demo.html beim Hinzufügen einer Komponente (z. B. 3 Spalten) überprüfst und klickst, um das HTML zu exportieren, siehst du, dass die .row- und .cell-Klassen...