2013-05-27 1 views
0

나는 내 컨트롤러 중 하나에이 스크립트를 가지고 : 나는 폐쇄 JetBrains의 PHPStorm에 filewatcher을 사용하고AngularJS와 및 폐쇄 컴파일러

function AdIssueListCtrl($scope, $http, $rootScope, $compile) { 
    $rootScope.nav = { 
     adsSideNav: true 
    }; 
    //datasource for kendoui interface 
    $scope.kendo_adissues = new kendo.data.DataSource({ 
     pageSize: 10, 
     serverPaging: true, 
     serverFiltering: true, 
     serverSorting: true, 
     transport: { 
      read: { 
       url: "/ads/adissue/kendo/?template=ads/ajax/json/list_adissue_kendo.html", 
       dataType: "json" 
      } 
     }, 
     schema: { 
      total: "count", 
      data: 'fields' 
     }, 
     sort: {'field': 'name', dir: 'asc'} 
    }); 
    //delete 
    $scope.delete = function (id) { 
     var deleteuser = confirm("Are you sure you wish to delete this issue and all it's ads?"); 
     if (deleteuser) { 
      $http.get("/ads/adissue/delete/" + id + "/").success(function (data) { 
       if (data.result == 'success') { 
        $scope.kendo_adissues.read(); 
       } 
      }); 
     } 
    }; 

    //bind data 
    $scope.cdb = function (e) { 
     var grid = $("#adissues_grid"); 
     $compile(grid.contents())($scope); 
    }; 
} 
AdIssueListCtrl.$inject = ['$scope', '$compile', '$rootScope', '$http']; 

, 그것은 기본적으로 코드 변경에 다음과 같은 실행됩니다.

compiler.jar --compilation_level SIMPLE_OPTIMIZATIONS --js $FileName$ 

어디에 $ 파일 이름 $는 현재 열려있는 파일입니다. 웬일인지 다음과 같은 오류가 발생합니다.

ERROR - Parse error. missing name after . operator 
    $scope.delete = function (id) { 
     ^

controllers.js:47: ERROR - Parse error. syntax error 
} 
^ 

controllers.js:48: ERROR - Parse error. syntax error 
AdIssueListCtrl.$inject = ['$scope', '$compile', '$rootScope', '$http']; 

스크립트는 잘 비는 축소 된 작품,하지만 난 왜 그 파서 오류를 던지고에 관해서 손실에 있어요? 어떤 아이디어?

답변

4

emcascript3 (이전 자바 스크립트)에서 delete와 같은 키워드는 따옴표가 붙지 않는 한 속성 이름으로 사용할 수 없습니다. 컴파일러의 --language_in 옵션을 사용하여 언어를 ECMASCRIPT5 또는 ECMASCRIPT5_STRICT으로 설정하면됩니다. 다른 해결 방법은 속성을 인용하는 것이지만 이름 변경의 의미가 있습니다.

+0

많은 도움을 주셔서 감사합니다. –