Использование AngularJS сервисов в библиотеке javascript (bootstrap -год-календарь) - PullRequest
0 голосов
/ 08 марта 2020

Мне нужно использовать bootstrap -год-календарь в приложении AngularJS. https://www.bootstrap-year-calendar.com/ По сути, цель состоит в том, чтобы сотрудник создавал свои отпуска и видел их в календаре. У меня есть сервисы, которые будут вставлять и получать выходные данные в базе данных mongodb, но мне нужно в начале установить переменную dataSource в библиотеке javascript со значениями, возвращенными из сервиса, и получить значения из события selectRange, чтобы вызвать почтовый сервис. Я звоню всем своим службам в контроллерах, но в этом случае мне нужно вызывать их в этой библиотеке javascript. Я просто выложу части кода, где мне нужно позвонить в службы

(function($) {
    var Calendar = function(element, options) {
        this.element = element;
        this.element.addClass('calendar');

        this._initializeEvents(options);
        this._initializeOptions(options);
        this._render();
    };

    Calendar.prototype = {
        constructor: Calendar,
        _initializeOptions: function(opt) {
            if(opt == null) {
                opt = [];
                opt.enableRangeSelection = true;
                opt.alwaysHalfDay = true;
                opt.language = "fr";
                opt.displayWeekNumber = true;
                opt.dataSource = []; // need to set this with 
                                     // the values from a service
            }

//////////////////////////// //

$(window).mouseup(function (e) {
    if (_this._mouseDown) {
        _this._mouseDown = false;
        _this._refreshRange();

        var minDate = _this._rangeStart < _this._rangeEnd ? _this._rangeStart : _this._rangeEnd;
        var maxDate = _this._rangeEnd > _this._rangeStart ? _this._rangeEnd : _this._rangeStart;
        console.log("minDate - " + minDate.toLocaleDateString());
        console.log("maxDate - " + maxDate.toLocaleDateString());

        //Need to call a post service here

        _this._triggerEvent('selectRange', { startDate: minDate, endDate: maxDate });
    }
});

1 Ответ

0 голосов
/ 09 марта 2020

Я склонен поместить обработчик событий в метод .run:

̶$̶(̶w̶i̶n̶d̶o̶w̶)̶.̶m̶o̶u̶s̶e̶u̶p̶(̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶e̶)̶ ̶{̶
app.run(function($window, myService) {
    angular.element($window).on("mousedown", function(e) {
        var _this /* ???? */
.       if (_this._mouseDown) {
            _this._mouseDown = false;
            _this._refreshRange();

            var minDate = _this._rangeStart < _this._rangeEnd ? _this._rangeStart : _this._rangeEnd;
            var maxDate = _this._rangeEnd > _this._rangeStart ? _this._rangeEnd : _this._rangeStart;
            console.log("minDate - " + minDate.toLocaleDateString());
            console.log("maxDate - " + maxDate.toLocaleDateString());

            //Call `myService` here

            _this._triggerEvent('selectRange', { startDate: minDate, endDate: maxDate });
        }
    });
});

Но я понятия не имею, где можно получить значение для объекта _this.

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