如何在flowjs中传递flow.upload上的参数

时间:2015-04-30 03:33:54

标签: angularjs flow-js

我需要为每个使用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();

2 个答案:

答案 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中完成,我假设。