0

コントローラーの 1 つにこのスクリプトがあります。

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'];

私はジェットブレイン PHPStorm でファイルウォッチャーを使用して閉鎖しています。基本的には、コードの変更時に次のように実行されます。

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

$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

1 に答える 1

4

emcascript3 (古い JavaScript) では、delete などのキーワードは、引用符で囲まれていない限り、プロパティ名として使用できません。コンパイラの--language_inオプションを使用して、言語をECMASCRIPT5または に設定するだけECMASCRIPT5_STRICTです。もう 1 つの回避策は、プロパティを引用することですが、これには名前の変更が含まれます。

于 2013-05-28T12:35:20.643 に答える