我正在尝试将指令从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);
})
})
});
}
}
});
答案 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]}} </span>
</div>
重命名为() => {
。但也要确保将return语句添加到指令函数中,该函数隐含在箭头函数中。
function () {