From 221f01a144d28b9040060c5058f197a6a5b5daae Mon Sep 17 00:00:00 2001 From: ComBusJV Date: Wed, 13 Dec 2017 09:53:43 +0100 Subject: [PATCH 1/2] do not inject angular.element removed injection of angular.element for async loading, usage of loader.js https://github.com/angular/angular.js/blob/41d5c90f170cc054b0f8f88220c22ef1ef6cc0a6/src/loader.js#L26 only ensures angular.module. replaces usage of $() with angular.element() --- contextMenu.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/contextMenu.js b/contextMenu.js index c798590..39f6668 100644 --- a/contextMenu.js +++ b/contextMenu.js @@ -1,4 +1,4 @@ -(function($, angular) { +(function(angular) { // eslint-disable-next-line angular/file-name, angular/no-service-method angular.module('ui.bootstrap.contextMenu', []) @@ -55,7 +55,7 @@ } } else { - var $a = $(''); + var $a = angular.element(''); var $anchorStyle = {}; if (leftOriented) { @@ -97,7 +97,7 @@ $boldStyle.float = 'right'; } - var $bold = $('' + $arrow + ''); + var $bold = angular.element('' + $arrow + ''); $bold.css($boldStyle); $a.css('cursor', 'default'); $a.append($bold); @@ -211,7 +211,7 @@ $scope.$apply(function () { var cleanupFunction = function () { - $(event.currentTarget).removeClass('context'); + angular.element(event.currentTarget).removeClass('context'); removeAllContextMenus(); }; var clickFunction = angular.isFunction(item.click) @@ -325,7 +325,7 @@ // Only add the
  • if the item is displayed if (displayed) { - var $li = $('
  • '); + var $li = angular.element('
  • '); var itemParams = angular.extend({}, params); itemParams.item = item; itemParams.$li = $li; @@ -451,7 +451,7 @@ // Destructuring var customClass = params.customClass; - var $ul = $('
      '); + var $ul = angular.element('
        '); $ul.addClass('dropdown-menu'); $ul.attr({ 'role': 'menu' }); $ul.css({ @@ -493,7 +493,7 @@ function removeOnOutsideClickEvent(e) { - var $curr = $(e.target); + var $curr = angular.element(e.target); var shouldRemove = true; while($curr.length) { @@ -512,7 +512,7 @@ function removeAllContextMenus(e) { $document.find('body').off('mousedown', removeOnOutsideClickEvent); $document.off('scroll', removeOnScrollEvent); - $(_clickedElement).removeClass('context'); + angular.element(_clickedElement).removeClass('context'); removeContextMenus(); $rootScope.$broadcast(''); } @@ -584,7 +584,7 @@ $document.on('scroll', removeOnScrollEvent); _clickedElement = event.currentTarget; - $(_clickedElement).addClass('context'); + angular.element(_clickedElement).addClass('context'); $scope.$apply(function () { var options = $scope.$eval(attrs.contextMenu); @@ -620,4 +620,4 @@ }; }]); // eslint-disable-next-line angular/window-service -})(window.angular.element, window.angular); +})(window.angular); From eff732ef6390bf2c52d2d1d3fc62443d40b94d40 Mon Sep 17 00:00:00 2001 From: ComBusJV Date: Wed, 13 Dec 2017 12:44:51 +0100 Subject: [PATCH 2/2] $applyAsync instead of $apply --- contextMenu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contextMenu.js b/contextMenu.js index 39f6668..96e98fc 100644 --- a/contextMenu.js +++ b/contextMenu.js @@ -586,7 +586,7 @@ _clickedElement = event.currentTarget; angular.element(_clickedElement).addClass('context'); - $scope.$apply(function () { + $scope.$applyAsync(function () { var options = $scope.$eval(attrs.contextMenu); var customClass = attrs.contextMenuClass; var modelValue = $scope.$eval(attrs.model);