JQuery вернуть, как это - PullRequest
       4

JQuery вернуть, как это

0 голосов
/ 11 ноября 2018

У меня проблемы с обратными вызовами jQuery

Я пытаюсь сделать так.

MainController.js

mapController = $.fn.mapController();

getMapController = function() {
   return mapController;
};

mapController.js

(function ( $ ) {
    $.fn.mapController = function(options) {
        let mapController = {};
        let settings = $.extend({
            save: function(data) {}
        }, options);

        mapController.openModal = function () {
             //OPEN MODAL
        }

        return: mapController
    }
}(jQuery));

nextController.js

function setPlace() {
    getMapController({
      save: function(data) {
         console.log("TEST") 
      }
    }).openMapModal();
}

Итак ... я пытаюсь получить mapController в nextController из getMapController метода, но не обратные вызовы workink ...

Как я могу получить обратные вызовы в nextController.js?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Похоже, вы ввели некоторую путаницу, назвав плагин jQuery с тем же именем, что и объект, который возвращает плагин. Оба называются mapController. Само по себе это не проблема, но в setPlace вы вызываете mapController, как если бы это был плагин jQuery (передавая ему параметры), но на самом деле это объект, возвращаемый им (см. MainController.js), который является , а не функцией.

Так что я думаю, что вы захотите изменить код MainController и сделать глобальную переменную mapController равной плагину jQuery:

mapController = $.fn.mapController;
              //               ^^^^^ remove parentheses.

Как уже упоминалось, обязательно удалите синтаксическую ошибку в операторе return в MapController; после него не должно быть двоеточия.

0 голосов
/ 11 ноября 2018

getMapController() возвращает функцию, вы должны вызывать ее с помощью ():

function setPlace() {
    getMapController({
      save: function(data) {
         console.log("TEST") 
      }
    })().openMapModal();
}

Кроме того, у вас есть ошибочный : в этой строке:

return: mapController

Это должно быть просто:

return mapController
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...