Ich bin neu bei Magento2 und unsere Organisation hat gerade die EE-Lizenz erhalten. Ich habe es auf meinem lokalen Computer installiert und die Standardvorlage gibt das Folgende gemischt mit HMTL aus:
<script type="text/x-magento-init">
{
"*": {
"Magento_Ui/js/core/app": {
"components": {
"customer": {
"component": "Magento_Customer/js/view/customer"
}
}
}
}
}
</script>
Und ruft gerne an
<script type="text/x-magento-init">
{
"*": {
"Magento_Ui/js/core/app": {
"components": {
"messages": {
"component": "Magento_Theme/js/view/messages"
}
}
}
}
}
</script>
Hat das was mit KnockoutJS
oder zu tun RequireJS
? Was sind diese Aufrufe und was ist das neue Skript-Tag<script type="text/x-magento-init">
magento-enterprise
magento2
frontend
knockoutjs
TheBlackBenzKid
quelle
quelle
Antworten:
Allgemeine Verwendung von "Skripttyp"
Bei der Verwendung
<script type="....">
des Browsers wird nur das interpretiert, was er kennt (wietext/javascript
zum Beispiel).Alles andere wird ignoriert.
Mit einem benutzerdefinierten Typ fügen Sie der Seite Informationen hinzu, ohne sie anzuzeigen und ohne dass der Browser sie interpretiert. Sie können diese Informationen später nach Belieben verwenden.
Wie Magento das nutzt
Magento verwendet diese Abschnitte nach dem Laden der Seite.
Der Code, der sie verwendet, befindet sich in
lib/web/mage/apply/scripts.js
.Ich verstehe nicht ganz, was die oben genannte Datei bewirkt, aber es gibt einen Kommentar in der Datei, der Folgendes besagt:
Schlussfolgerung / Spekulation
Ich spekuliere, dass dies eine Möglichkeit ist, das Verhalten von js für verschiedene Elemente auf der Seite festzulegen, ohne dass die Vorlage, die die Elemente enthält, neu geschrieben werden muss.
Sie müssen nur
<script type="text/x-magento-init">
eine Ihrer Vorlagen hinzufügen , Ihre Vorlage in die Seite einfügen und magento verschiebt das Verhalten "automatisch" auf das richtige Element.quelle
app/design/frontend/package/template/Magento_Catalog/templates/product/view/gallery.phtml
aber kein Glück. Irgendwelche Ratschläge zum Entfernen von Standardverhalten wie Produktlupe und / oder Produktgalerie (genauer gesagt: Fotorama)?Zusätzlich,
Hersteller \ magento \ magento2-base \ lib \ web \ mage \ apply \ scripts.js
Unter Verwendung der folgenden Anleitungen
http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html
Standardsyntax ist
In Bezug auf
http://alanstorm.com/magento_2_javascript_init_scripts
http://alanstorm.com/magento_2_introducing_ui_components
Magento selbst verwendet oft die
x-magento-init
Methode, um ein RequireJS-Modul als Programm aufzurufen. Die eigentliche Stärke vonx-magento-init
ist jedoch die Fähigkeit, eine Magento Javascript-Komponente zu erstellen.Magento Javascript-Komponenten sind RequireJS-Module, die eine Funktion zurückgeben.
Magento trifft auf ein
text/x-magento-init
Skript-Tag mit einem * -Attribut1] Initialisiere das angegebene RequireJS-Modul (Magento_Ui / js / core / app)
2] Rufen Sie die von diesem Modul zurückgegebene Funktion auf und übergeben Sie das Datenobjekt
Ich hoffe es hilft
quelle