Какой js используется при добавлении нового адреса клиента в Magento 2?


В Magento 2 при создании нового клиента есть вкладка "Адрес", и когда я нажимаю "новый адрес", запускается js, который отображает поле адреса, но я не знаю, какое из них, я хочу расширить этот js, чтобы я мог вставить свою пользовательскую функцию из своего расширения,

Вот рисунок добавления нового адреса и элемента проверки:

enter image description here

Когда я нажимаю добавить новый адрес, есть 2 файла, которые запускаются js, и я хочу знать, какой js вызывает их

РЕДАКТИРОВАТЬ

Я пробовал добавлять миксин, requirejs-config.js :

var config = {
    config: {
        mixins: {
            'Magento_Ui/js/form/components/collection': {
               'NamespacE_Module/js/form/components/collection-mixin': true
            }
        } 
};

Collection-mixin.js :

    /**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
define([
    'jquery',
    'mage/utils/wrapper'
], function ($, wrapper) {
    'use strict';
    return function(collection){
        var newFunction = collection.addChild;
        var newFunction = wrapper.wrap(newFunction, function(original){
            //do extra stuff
            console.log('before');
            //call original method
            var result = original();
            console.log('after');
            //do extra stuff

            //return original value
            return result;
        });

        collection.addChild = newFunction;
        return collection;
    };

});

Функция, которую я хочу добавить, находится после функции addChild, которая является исходной функцией из collection.js

Author: simple guy, 2017-02-21

1 answers

Вы можете переопределить файл Magento_Ui/js/form/components/collection.js в своем модуле.

И ваш файл requirejs-config.js должен быть ниже

/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

    var config = {
        map: {
            '*': {
                'Magento_Ui/js/form/components/collection':'[Namespace]_[VendorName]/js/form/components/collection'
            }
        }
    };

В вашем файле collection.js и обновите код ниже.

sayHello:function(){
            alert('simple guy')
        },

        /**
         * Creates new item of collection, based on incoming 'index'.
         * If not passed creates one with 'new_' prefix.
         *
         * @param {String|Object} [index] - Index of a child.
         * @returns {Collection} Chainable.
         */
        addChild: function (index) {
            this.childIndex = !_.isString(index) ?
                'new_' + this.lastIndex++ :
                index;

            layout([utils.template(childTemplate, this)]);

            this.sayHello();

            return this;
        },

После завершения этого,

Вам нужно удалить pub/static/adminhtml/ и pub/static/_requirejs/adminhtml/.

И выполните команду php bin/magento setup:static-content:deploy.

Наконец, откройте одну из страниц клиента, попробуйте нажать на Добавить новый адрес.

Дайте мне знать, если у вас есть какая-либо информация.

 1
Author: Bojjaiah, 2017-02-21 10:24:05