Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用FineUploader提交的onSubmitted中未定义getItemByFileId_Javascript_Coffeescript_This_Fine Uploader - Fatal编程技术网

Javascript 在使用FineUploader提交的onSubmitted中未定义getItemByFileId

Javascript 在使用FineUploader提交的onSubmitted中未定义getItemByFileId,javascript,coffeescript,this,fine-uploader,Javascript,Coffeescript,This,Fine Uploader,我在工作 此时,上传正在工作到s3,但我的onSubmit回调爆炸:[Fine Uploader 5.0.2]在“OnSubmited”回调中捕获异常-undefined不是一个函数 这可能是一个cofeescript胖箭头问题,因为我将示例转换为coffeescript以适应我的构建环境和我对coffeescript的偏好,但无论如何我都被难住了 以下是选项的相关说明 callbacks: { onSubmitted: (id, name) =>

我在工作

此时,上传正在工作到s3,但我的onSubmit回调爆炸:[Fine Uploader 5.0.2]在“OnSubmited”回调中捕获异常-undefined不是一个函数

这可能是一个cofeescript胖箭头问题,因为我将示例转换为coffeescript以适应我的构建环境和我对coffeescript的偏好,但无论如何我都被难住了

以下是选项的相关说明

 callbacks: {
           onSubmitted: (id, name) =>
              console.log "calling onSubmitted(#{id}, #{name})"
              console.log "This shouldn't be undefined: #{@getItemByFileId}"
              # but it _is_ undefined
              $file = $(@getItemByFileId(id))
              console.log $file
              $thumbnail = $file.find(".qq-thumbnail-selector")
              $thumbnail.click ->
                 openLargerPreview(
                    $scope,
                    $(element),
                    largePreviewSize,
                    id,
                    name
                    )
                 return
              return
        }
这是skinny arrow版本,请参见下面呈现在JS中的注释:

callbacks: {
          onSubmitted: function(id, name) {
            var $file, $thumbnail;
            console.log("calling onSubmitted(" + id + ", " + name + ")");
            $file = $(getItemByFileId(id));
            console.log($file);
            $thumbnail = $file.find(".qq-thumbnail-selector");
            $thumbnail.click(function() {
              openLargerPreview($scope, $(element), largePreviewSize, id, name);
            });
          }
        }
我上传东西的结果是

[Fine Uploader 5.0.2] Received 1 files or inputs. 
[Fine Uploader 5.0.2] Attempting to validate image.
calling onSubmitted(0, IMAG0161.jpg) 
This shouldn't be undefined: undefined 
[Fine Uploader 5.0.2] Caught exception in 'onSubmitted' callback - undefined is not a function 

正如代码中所指出的,据我所知,问题在于@getItemByFileId没有正确定义,而据我所知,这应该是FineUploader3对象

无需在精细上载程序事件处理程序中使用胖箭头。事件处理程序的上下文将由Fine Uploader为您设置为Fine Uploader实例。用一支细箭。

嗯,我试过了。将=>更改为->并删除方法的@prefix会导致在“onSubmitted”回调中捕获异常-getItemByFileId未定义我猜CS会以其他方式干扰事件处理程序的上下文。不久前我放弃了CS,因为我发现它使我的代码很难解析,而且没有任何明显的收益。我们仍然在构建脚本中使用它,但我希望很快转换成普通的ole JS。好吧,即使我不喜欢CS,在这种情况下我也不需要这么做。我将在上面发布传输的JS。传输的版本显示您正在尝试引用getItemByFileId变量。相反,您应该在事件处理程序的上下文中引用getItemByFileId,如下所示:this.getItemByFileId;确实如此,但我不清楚如何做到这一点。我可以做->版本,这会导致变量引用,或者我可以做=>版本,这会导致错误的上下文,但是我不知道如何获取和传递正确的上下文。我尝试了一些基于的方法,比如在不同的点上使用this=that,或者event.currentTarget,但没有骰子