2015-04-30 2 views
0

Мне нужно передать параметры, которые отличаются для каждого файла, который я использовал flowobj.opts.query, но который добавляет ко всем файлам. Параметры должны быть разными для каждого файла загрузитькак передать параметры на flow.upload в flowjs

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

Из документации:

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

Поэтому просто использовать функцию вместо объекта, как вы делаете. Попросите функцию вернуть объект, который вы хотите добавить в качестве параметров.

0

Старый пост, но не был достаточно ясен, без примера для меня. Таким образом, чтобы назначить параметры каждого файла, лучший способ передать функцию свойству запроса, который будет оценивать в каждом куске, как указано в этом issue на 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; 
    } 
}); 

Таким образом, для углового он будет установленного в провайдере следующим образом:

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, предположил я.

Смежные вопросы