2013-03-11 77 views
-1

看起来我已经发现自己又一次在相当的咸菜。从我理解通过搜索这个问题是,如果varint,可能会发生此错误。但就我的业余JavaScript技能而言,我并没有在我的完全stolen code中检测到这样的事情。未捕获的语法错误:意外的标识符

var createAttachment = function(file) { 
    var uid = [guava_uid, (new Date).getTime(), 'raw'].join('-'); 

    var data = new FormData(); 

    data.append('attachment[name]', file.name); 
    data.append('attachment[file]', file); 
    data.append('attachment[uid]', uid); 

    $.ajax({ 
     url: '/attachments', 
     data: data, 
     cache: false, 
     contentType: false, 
     processData: false, 
     type: 'POST', 
    }).error(function(){ 
     console.log('could not upload'); 
    }); 

    var absText = '![' file.name + '](/attachments/' + uid + ')'; // <<< ERROR 
    $('#editor textarea').insertAtCaret(absText); 
}; 

guava_uid之前的任何代码定义如上guava_uid = "1";,我试图它作为guava_uid = 1;为好,但同样的结果。像往常一样,所有的帮助都表示赞赏。

+1

以下两个答案都不正确。你需要在''[''和'file.name'之间加号。 – 2013-03-11 14:35:13

+0

当创建一个新的Date对象时,不需要使用'()'吗? – Teemu 2013-03-11 14:36:23

+0

正确!这种微小的事情完全滑脱了我的想法。谢谢@RobW – Codefoe 2013-03-11 14:37:39

回答

0
$.ajax({ 
    url: '/attachments', 
    data: data, 
    cache: false, 
    contentType: false, 
    processData: false, 
    type: 'POST', 
//   ^
//   should not be there 
}).error(function(){ 
    console.log('could not upload'); 
}); 

和:

var absText = '![' file.name 
//    ^
//   missing + 
+0

它不需要*在那里,但它在技术上也不是无效的。我认为只有Internet Explorer在对象文字中使用尾随逗号(可能仍然存在)。 – 2013-03-11 14:38:02

+0

@AnthonyGrist IE使它在技术上无效;-) – 2013-03-11 14:40:55

0

尝试

var uid = ["guava_uid", (new Date).getTime(), 'raw'].join('-'); 

当我试图用这样的代码:

var uuid = some-uid-like-int 

我已经得到了同样的错误,但当我像使用字符串一样使用uuid时 - 一切正常。

+0

我已经在我的问题中提到,无论是否int,这并不重要。 – Codefoe 2013-03-11 14:39:50

相关问题