0

面倒なタスク「uglify」によってコードが変更されたため、動作しなくなりました。私は CoffeeScript、AngularJS、grunt などの初心者です。これを修正するには、CoffeeScript コードで何を変更する必要がありますか?

「醜い」が私のコードをそのように変更した理由はわかりません。JavaScript コードは私には良さそうです。

CoffeeScript コード:

# add background and some style just for specific page
.directive('customBackground', () ->
  return {
  restrict: "A"
  controller: [
    '$scope', '$element', '$location'
    ($scope, $element, $location) ->
      path = ->
        return $location.path()

      addBg = (path) ->
        # remove all the classes
        $element.removeClass 'body-home body-special body-tasks body-lock'

        # add certain class based on path
        switch path
          when '/' then $element.addClass 'body-home'
          when '/404', '/500', '/signin' then $element.addClass 'body-special'

      addBg $location.path()

      $scope.$watch(path, (newVal, oldVal) ->
        if newVal is oldVal
          return
        addBg $location.path()
        return
      )
      return
  ]
  }
)

コンパイルされた JS コード

.directive('customBackground', function() {
    return {
      restrict: "A",
      controller: [
        '$scope', '$element', '$location', function($scope, $element, $location) {
          var addBg, path;
          path = function() {
            return $location.path();
          };
          addBg = function(path) {
            $element.removeClass('body-home body-special body-tasks body-lock');
            switch (path) {
              case '/':
                return $element.addClass('body-home');
              case '/404':
              case '/500':
              case '/signin':
                return $element.addClass('body-special');
            }
          };
          addBg($location.path());
          $scope.$watch(path, function(newVal, oldVal) {
            if (newVal === oldVal) {
              return;
            }
            addBg($location.path());
          });
        }
      ]
    };
  })

「uglify」タスク後の JS コード

.directive("customBackground", function () {
    return{restrict: "A", controller: ["$scope", "$element", "$location", function ($scope, $element, $location) {
        var addBg, path;
        path = function () {
            return $location.path()
        }, addBg = function (path) {
            switch ($element.removeClass("body-home body-special body-tasks body-lock"), path) {
                case"/":
                    return $element.addClass("body-home");
                case"/404":
                case"/500":
                case"/signin":
                    return $element.addClass("body-special")
            }
        }, addBg($location.path()), $scope.$watch(path, function (newVal, oldVal) {
            newVal !== oldVal && addBg($location.path())
        })
    }]}
})
4

0 に答える 0