вызвать функцию в функции пользовательской библиотеки в Javascript - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть библиотека, которая выглядит следующим образом

(function (bindDropdownAndSetValue) {
    function allFunction() {
        function bindDropDownValue(response, dropdownObject) {
            $.each(response, function (i, e) {
                $('#' + dropdownObject.id).append('<option value=' + e[dropdownObject.value] + '>' + e[dropdownObject.text] + '</option>');
            });
        }

        function dropdownValues(id, value, text) {
            this.id = id;
            this.value = value;
            this.text = text;
        }
    }
    bindDropdownAndSetValue.allFunction = allFunction;
} (bindDropdownAndSetValue));

в приведенном выше примере, когда я вызываю bindDropdownAndSetValue.allFunction Я хочу перебрать функции внутри allFunction, но она не работает

и когда я изменил библиотеку на следующую:

(function (bindDropdownAndSetValue) {
    function bindDropDownValue(response, dropdownObject) {
        $.each(response, function (i, e) {
            $('#' + dropdownObject.id).append('<option value=' + e[dropdownObject.value] + '>' + e[dropdownObject.text] + '</option>');
        });
    }

    function dropdownValues(id, value, text) {
        this.id = id;
        this.value = value;
        this.text = text;
    }
    bindDropdownAndSetValue.bindDropDownValue = bindDropDownValue;
    bindDropdownAndSetValue.dropdownValues = dropdownValues;
} (bindDropdownAndSetValue));

это работает нормально, но проблема здесь в том, что мне нужно исправить одну строку кода, чтобы присвоить function по одномуbindDropdownAndSetValue.

Есть ли другой способ исправить этот код?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Делайте это коротко и просто:

bindDropdownAndSetValue.bindDropDownValue = function(response, dropdownObject) {
    $.each(response, function (i, e) {
        $('#' + dropdownObject.id).append('<option value=' + e[dropdownObject.value] + '>' + e[dropdownObject.text] + '</option>');
    });
};
bindDropdownAndSetValue.dropdownValues = function(id, value, text) {
    this.id = id;
    this.value = value;
    this.text = text;
};
0 голосов
/ 26 декабря 2018
 (function (bindDropdownAndSetValue) {
    function bindDropDownValue(response, dropdownObject) {
        $.each(response, function (i, e) {
            $('#' + dropdownObject.id).append('<option value=' + e[dropdownObject.value] + '>' + e[dropdownObject.text] + '</option>');
        });
    }

    function dropdownValues(id, value, text) {
        this.id = id;
        this.value = value;
        this.text = text;
    }
    Object.assign(bindDropdownAndSetValue, {bindDropDownValue, dropdownValues });
} (bindDropdownAndSetValue));
...