我正在尝试将文件附加到电子邮件中,文件被创建,我传入发票的内部ID但是它引发了错误"参数类型错误:options.attachments需要作为文件。文件[]。 ",我将文件对象作为数组的单数元素传递。当我查看调试器中的变量时,它显示为file.File作为数组的元素。所以这是正确的类型。有谁知道什么可能是错的。这是我正在调试的测试代码。
var file = renderModule.transaction( {
entityId : 479772,//internal id of the transaction
printMode: 'pdf',
formId : 111
} );
//noinspection AmdModulesDependencies
var subject = "Test Subject"
var options = {};
options.author = 13136; //autoSendParams.senderId;
options.recipients = 'jk@zognet.com';
options.replyTo = 'ar@cbcbev.com';
options.subject = 'test subject';
options.body = "test";
options.relatedRecords = {transaction:479772}
options.attachments = [ file ]
emailModule.send( options );
以下是我传递的附件变量的调试器输出
attachments = {array} length=1
[0] = {file.File}
type = {string} file.File
id = {object} null
name = {string} Invoice_CBC:384463-IN.pdf
description = {object} null
path = {string} Invoice_CBC:384463-IN.pdf
url = {object} null
folder = {number} -1
fileType = {string} PDF
isText = {boolean} false
size = {number} 14191
encoding = {object} null
isInactive = {boolean} false
isOnline = {boolean} false
答案 0 :(得分:1)
您的relatedRecords属性应该是这样的对象:
relatedRecords = {transaction:479772}
答案 1 :(得分:1)
不确定是否仍然需要解决方案。
1的原因是您向Javascript对象原型扩展/添加了一些方法(即使您没有在代码中调用此方法)
例如,在您的.js文件中包含此代码段将是根本原因
Array.prototype.sum = function (prop) {
var total = 0
for (var i = 0, _len = this.length; i < _len; i++) {
total += this[i][prop]
}
return total
}