Einmaliges Drücken der Laravel-Klinge

8

Ich versuche, ein HTML-Widget mit Laravel-Klinge ähnlich der folgenden (widget.blade.php) zu erstellen:

%Vor%

und ich benutze das Widget in einem anderen Blade wie:

%Vor%

Das Problem ist, wenn ich das Widget mehrmals auf einer Seite verwende, werden die "Skripte" und "Stile" mehrmals wiederholt.

Wie kann ich verhindern, dass Laravel "Skripte" und "Stile" mehrfach anwendet?

    
ma.mehralian 01.07.2016, 00:53
quelle

3 Antworten

7

In der folgenden Antwort ging ich davon aus, dass Sie mit der Blade-Erweiterung vertraut sind. Diese Methode wurde auf Laravel 5.2 und 5.3 getestet (siehe Hinweis unten).

Nach dem Test Ismail RBOUHs Antwort (also bitte lesen), scheint es zwei Probleme mit der Lösung zu geben:

1- Die Variable $ isDisplayed befindet sich nicht in demselben Bereich wie die anderen eingeschlossenen Widgets, so dass jeder @include seine Skripte zum Stapeln verschiebt. Als Ergebnis ändere ich es zu:

%Vor%

2- Die Lösung beschränkt die Verwendung von @pushonce auf ein Widget. d. h. im Falle von 2 oder mehr Widgets (widget1.blade.php, widget2.blade.php, ...) verhindert es, andere Widgets Skripte zu schieben. Also, ich füge Domäne zu @pushonce mit dem folgenden Code hinzu:

%Vor%

Verwendung:

widget1.blade.php

%Vor%

widget2.blade.php

%Vor%

HINWEIS FÜR L 5.3: Ändere die folgende Zeile:

%Vor%

bis

%Vor%     
ma.mehralian 01.07.2016, 04:31
quelle
3

Eine Lösung besteht darin, Blade zu erweitern, indem Sie wie folgt eine pushonce -Direktive erstellen:

%Vor%

Er muss zu AppServiceProvider boot method hinzugefügt werden.

Verwendung:

%Vor%

Bitte testen Sie es und lassen Sie mich wissen, wenn das Hilfe ist.

    
Ismail RBOUH 01.07.2016 01:47
quelle
-1

Ich habe den Code ein bisschen geändert:

%Vor%

Ich verwende die Datei- und Zeilennummer, um die Variable zu setzen, also einfach:

%Vor%

Anstelle von:

%Vor%     
txigreman 04.08.2017 20:47
quelle

Tags und Links