Скопируйте кнопку с ее обратным вызовом angularjs - PullRequest
0 голосов
/ 04 октября 2018

Рассмотрим эту директиву angularjs (упрощенно):

define (['some.form', 'lodash'], function (someForm, _) {
  return inputForm
  .directive('inputForm', ['internalRouting', '$rootScope', function (internalRouting, $rootScope) {
    return {
        restrict: 'E',
        transclude: true,
        navButtons: '='
      },
      link: function ($scope) {

        var actionContinue = function () {
          // restore the original continue button.
          $scope.navButtons[$scope.originalContinueButtonIndex].action = $scope.originalContinueCallback;
        };

        // Replace the original continue button.
        $scope.originalContinueButtonIndex = _.findIndex($scope.navButtons, {ssciType: 'continue'});
        $scope.originalContinueCallback = $scope.navButtons[$scope.originalContinueButtonIndex].action;
        $scope.navButtons[$scope.originalContinueButtonIndex].action = actionContinue;

      }
    };
  }]);
});

Итак, я вижу, что после открытия директива originalContinueCallback фактически указывает на новый обратный вызов, что имеет смысл, поскольку, вероятно, копирует ссылку, а неклон, но я не понимаю, почему при нажатии на кнопку три раза она вызывает обратный вызов источника.

Также я не знаю, как правильно скопировать обратный вызов?

...