Come estendere i file .js e .html in Magento 2
-
28-09-2020 - |
Domanda
Estendo customer address
per questi Devo Modifica / Estensione vendor/Magento/module-ui
Core file.
I.e
root/vendor/magento/module-ui/view/base/web/js/form/components/collection.js
root/vendor/magento/module-ui/view/base/web/templates/form/components/collection.html
.
Quando ho modificato i file core, funziona bene, ma questa non è buona procedura / idea da estendere.
Così ho creato il nome del fornitore come Magento
in root/app/code/
e ho effettuato modificato sopra i file nella stessa cartella in locale.
I.e
root/app/code/magento/module-ui/view/base/web/js/form/components/collection.js
root/app/code/magento/module-ui/view/base/web/templates/form/components/collection.html
.
Dopo aver posizionato tali file ho cancellato la cache.Ma ancora non mostra i miei cambiamenti.
Ho anche eseguito il comando php bin/magento setup:static-content:deploy
ma senza fortuna.
Potresti per favore suggerirmi come fare questo?
Soluzione 2
finalmente raggiunto il mio sé.
Crea file requirejs-config.js
da Learning / HelloWorld / View / Base e Incolla sotto il codice
var config = {
map: {
'*': {
'Magento_Ui/js/form/components/collection':'Learning_HelloWorld/js/form/components/collection'
}
}
};
.
Creare il file collection.js
da Learning / Hilloworld / View / Base / Web / JS / Form / Componenti e copia il codice core in pasta e modyfie.
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'underscore',
'mageUtils',
'uiRegistry',
'uiComponent',
'uiLayout',
'Magento_Ui/js/modal/confirm'
], function (_, utils, registry, Component, layout, confirm) {
'use strict';
var childTemplate = {
parent: '${ $.$data.name }',
name: '${ $.$data.childIndex }',
dataScope: '${ $.name }',
nodeTemplate: '${ $.$data.name }.${ $.$data.itemTemplate }'
};
return Component.extend({
defaults: {
lastIndex: 0,
template: 'Learning_HelloWorld/form/components/collection'
},
/* my custom methods */
sendAddress: function (elem) {
var self = this;
self._sendAddress(elem);
},
/* my custom methods */
_sendAddress: function (elem) {
this.bubble('update');
}
});
});
.
Creare il file collection.html
da Learning / Hilloworld / View / Base / Web / Template / Modulo / Componenti Path and Paste Core Core e Modifica IT
<div class="ui-tabs">
<!-- My Extra html code -->
<button type="button" data-bind="click: $parent.sendAddress.bind($parent, element)">
Send this Address
</button>
</div>
.
Ora esegui i comandi sotto.
- .
- Impostazioni: Aggiornamento
- Configurazione: Contenuto statico: Distribuisci
Ora funzionerà.
Sentiti libero di chiedere se qualche domanda.
Altri suggerimenti
Un modulo è registrato sotto un percorso, ecco perché può leggere dal venditore, ma non può da app / codice.