我需要为每个使用flowobj.opts.query的文件传递不同的参数,但这会添加到所有文件中。每个文件上传的参数应该不同
angular.forEach($flow.files, function (file, key) {
file.flowObj.opts.query[file.DocumentName.concat("-DocumentName")] = file.DocumentName;
file.flowObj.opts.query[file.DocumentExtension.concat("-DocumentExtension")] = file.DocumentExtension;
file.flowObj.opts.query[file.DocumentType.concat("-DocumentType")] = file.DocumentType;
file.flowObj.opts.query[vm.case.Id.concat("-CaseId")] = vm.case.Id;
});
$flow.upload();
答案 0 :(得分:0)
来自文档:
**query** Extra parameters to include in the multipart POST with data. This can be an object or a function. If a function, it will be passed a FlowFile, a FlowChunk object and a isTest boolean (Default: {})
因此,只需使用函数而不是对象。让您的函数返回您想要添加为参数的对象。
答案 1 :(得分:0)
旧帖子,但对我来说没有一个例子也不够清楚。 因此,要为每个文件分配参数,最好的方法是将函数传递给将在每个块上进行求值的查询属性,如github上的issue中所述:
var flow = new Flow({
query: function (flowFile, flowChunk) {
if (flowFile.myparams) {
return flowFile.myparams;
}
// generate some values
flowFile.myparams = {parameterName:'parameterValue'};
return flowFile.myparams;
}
});
因此对于角度,它将在提供者中设置如下:
var app = angular.module('app', ['flow'])
.config(['flowFactoryProvider', function (flowFactoryProvider) {
flowFactoryProvider.defaults = {
query: function(flowfile, flowchunk) {
if (flowFile.myparams) {
return flowFile.myparams;
}
// generate some values
flowFile.myparams = {parameterName:'parameterValue'};
return flowFile.myparams;
}
}
也可以在指令flow-init中完成,我假设。