2017-02-11 8 views
1

Я новичок в coffeescript. Я уже написал код в js, теперь я хочу его преобразовать в coffeescript, я попробовал много, у меня есть также This. но это мне не поможет.Проблема с функцией CoffeeScript

вот мой код,

this.$scope.callTestFuntion = function(){ 
    this.blockingObject.render(function(dataURL){ 
     console.log('via render'); 
     console.log(dataURL.length); 
    }); 
    } 
    this.$scope.blockingObject.callback=function(dataURL){ 
    console.log('via function'); 
    console.log(dataURL.length); 
    this.myCroppedImage = dataURL; 
    } 

    var handleFileSelect=function(evt) { 
    console.log('here'); 
    var file=evt.currentTarget.files[0]; 
    var reader = new FileReader(); 
    reader.onload = function (evt) { 
     this.$scope.$apply(function($scope){ 
     this.$scope.myImage=evt.target.result; 
     }); 
    }; 
    reader.readAsDataURL(file); 
    }; 

Я хочу, чтобы преобразовать его в CoffeeScript синтаксиса. пожалуйста помогите.

Благодаря

+1

Почему вы хотите конвертировать JS в coffescript, который в конечном итоге/неизбежно будет преобразован обратно в JS? – Thomas

ответ

1

Если вы просто хотите, чтобы преобразовать код, то используйте http://js2.coffee

@$scope.callTestFuntion = -> 
    @blockingObject.render (dataURL) -> 
    console.log 'via render' 
    console.log dataURL.length 
    return 
    return 

@$scope.blockingObject.callback = (dataURL) -> 
    console.log 'via function' 
    console.log dataURL.length 
    @myCroppedImage = dataURL 
    return 

handleFileSelect = (evt) -> 
    console.log 'here' 
    file = evt.currentTarget.files[0] 
    reader = new FileReader 

    reader.onload = (evt) -> 
    @$scope.$apply ($scope) -> 
     @$scope.myImage = evt.target.result 
     return 
    return 

    reader.readAsDataURL file 
    return 

# --- 
# generated by js2coffee 2.2.0 
1

Вот ваш конвертированы код:

# CoffeeScript code converted from JavaScript 
# from Georgi Naumov 
# [email protected] for contacts and suggestions 
@.$scope.callTestFuntion = -> 
    @.blockingObject.render (dataURL) -> 
    console.log 'via render' 
    console.log dataURL.length 
@.$scope.blockingObject.callback = (dataURL) -> 
    console.log 'via function' 
    console.log dataURL.length 
    @.myCroppedImage = dataURL 

handleFileSelect = (evt) -> 
    console.log 'here' 
    file = evt.currentTarget.files[0] 
    reader = new FileReader() 
    reader.onload = (evt) -> 
    @.$scope.$apply ($scope) -> 
     @.$scope.myImage = evt.target.result 
    reader.readAsDataURL file 

И здесь приводится JavaScript после компиляции:

// Generated by CoffeeScript 1.12.3 
(function() { 
    var handleFileSelect; 

    this.$scope.callTestFuntion = function() { 
    return this.blockingObject.render(function(dataURL) { 
     console.log('via render'); 
     return console.log(dataURL.length); 
    }); 
    }; 

    this.$scope.blockingObject.callback = function(dataURL) { 
    console.log('via function'); 
    console.log(dataURL.length); 
    return this.myCroppedImage = dataURL; 
    }; 

    handleFileSelect = function(evt) { 
    var file, reader; 
    console.log('here'); 
    file = evt.currentTarget.files[0]; 
    reader = new FileReader(); 
    reader.onload = function(evt) { 
     return this.$scope.$apply(function($scope) { 
     return this.$scope.myImage = evt.target.result; 
     }); 
    }; 
    return reader.readAsDataURL(file); 
    }; 

}).call(this); 
+0

Это тоже работающее решение для меня +1 для этого –

+0

Я только что исправил одну проблему с избыточным возвратом функции. Удачи :) –