从ES6转换为ES5抛出语法错误

时间:2017-10-04 20:23:55

标签: angularjs ecmascript-6 ecmascript-5

我正在尝试将指令从ES6转换为ES5。它在范围内给出了语法错误,指出“期待换行符或分号”以及链接:函数声明“函数语句应该在程序的最高级别”。有人可以帮助将此ES6指令更改为ES5

ES6中的指令

directives.directive('clickAndWait', () => ({
        restrict: 'A',
        scope: {
            asyncAction: '&clickAndWait',
        },
        link: (scope, element) => {
        element.bind('click', () => {

        element.prop('disabled', true);
    // element.addClass('state-waiting');
    scope.$apply(() => {
        scope.asyncAction().finally(() => {
        element.prop('disabled', false);
    // element.removeClass('state-waiting');
});
});
});
},
}));

我在ES5中的代码

        directives.directive('clickAndWait', function () {
       return {
           restrict : 'A',
           scope : {
               asyncAction: '&clickAndWait'
           },
           link : function(scope, element, attr) {
               element.bind('click', function(){
                   element.prop('disabled', true);
                   scope.$apply(function () {
                       scope.asyncAction().finally(function () {
                           element.prop('disabled', false);
                       })
                   })
               });
           }
       }

    });

1 个答案:

答案 0 :(得分:1)

主要将<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-controller='MyController' ng-app="myApp"> <span ng-repeat="x in api">{{mapping[x]}}&nbsp;</span> </div>重命名为() => {。但也要确保将return语句添加到指令函数中,该函数隐含在箭头函数中。

function () {