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