0

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

2 回答 2

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: {})

因此,只需使用函数而不是对象即可。让您的函数返回要作为参数添加的对象。

于 2016-04-14T12:49:29.220 回答
0

旧帖子,但没有我的例子就不够清楚。因此,要将参数分配给每个文件,最好的方法是将一个函数传递给将在每个块上评估的查询属性,就像在 github 上的这个问题中所述:

var flow = new Flow({
  query: function (flowFile, flowChunk) {
    if (flowFile.myparams) {
      return flowFile.myparams;
    } 
    // generate some values
    flowFile.myparams = {parameterName:'parameterValue'};
    return flowFile.myparams;
  }
});

因此,对于 Angular,它将像这样在提供程序中设置:

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 中完成。

于 2017-01-17T11:10:25.910 回答