2014-09-13 7 views
9

flow` funziona meglio di qualsiasi altra cosa.Angolare - ng-flow Come inviare String insieme a File

voglio inviare messaggi di testo un ingresso anche con file usando ng-flow in Angular js

Please help me ragazzi ...

+0

ack! Anch'io ho bisogno di questo. È possibile aggiungere un parametro di query alle richieste di acquisizione con l'opzione 'query' quando lo si configura, ma non ho capito come farlo al momento del caricamento. Fastidioso! Mi sento come se fosse un'enorme libreria con funzionalità davvero complesse che sfortunatamente ha una copertura di documentazione davvero minuscola ... – Askdesigners

+0

esattamente non vale la pena usare il flusso ng – user3800108

+0

Non penso che sia un caso di abbandonare la libreria, ma piuttosto vedere come puoi piegarlo alle tue esigenze. Vedi la mia risposta qui sotto. – Askdesigners

risposta

6

così ho trovato la soluzione a questo! Non è che la libreria è cattiva, è più che la documentazione è molto sottile, e lasciano a te la possibilità di capire le cose. Ho finito per seguire l'intero percorso nel codice che una richiesta prende quando viene costruita.

In un problema precedente avevo bisogno di interrompere immediatamente il caricamento dei file quando caduto e qualcuno qui consigliato di eseguire il caricamento in una funzione di ng-clic.

Questo era il codice che mi ha dato. (flow.js upload file on click)

ctrl.uploadItems = function(e){ 

    //Do what you need to do 

    e.opts.query = {student_id: $scope.globals.userInfo.id, assignment_id: ctrl.submissionParams}; 

    e.upload(); 

}; 

Poi accedendo la e ho trovato che l'oggetto aveva l'opzione query lì ho modificato il blocco come segue.

ctrl.uploadItems = function(e){ 

    e.opts.query = {parameter_to_add: value}; 

    e.upload(); 

}; 

In questo modo è possibile modificare l'oggetto in qualsiasi momento al momento del caricamento.

5

ho trovato questa risposta da AidasK a https://github.com/flowjs/ng-flow/issues/33

È possibile passare i parametri personalizzati con l'opzione query. Hai tre opzioni per farlo.

Opzione uno:

<div flow-init="{ 
    query: { id: 2, source: 'flow_query' }, 
    headers: { id: 5, source: 'flow_header' } 
}"> 

Opzione due:

<div flow-init="{ 
    query: functionFromcontroller 
}"> 

Opzione tre:

<div flow-init="config"> 

</div> 

nel controller:

function MyCtrl($scope) { 
    $scope.config = { 
    query: function (flowFile, flowChunk) { 
     // function will be called for every request 
     return { 
     id: 2, source: 'flow_query' 
     }; 
    } 
    }; 
} 
3

Per aggiungere un parametro di query al momento in cui si aggiunge un file può essere fatto prendendo l'evento-file aggiunto nel controller e l'impostazione del parametro di query non in questo modo:

$scope.$on('flow::fileAdded', function (event, $flow, flowFile) {  
     $flow.opts.query = { someParam: yourValue, otherParam: otherValue }; 
    }); 

Questi parametri aggiuntivi verranno quindi aggiunti al caricamento e potranno essere gestiti sul server.

+0

Come posso accedere a quei parametri extra sul lato server? – razp26

+1

@ razp26 È possibile ottenerli sul server esattamente nello stesso modo in cui si ottengono i parametri "flowChunkNumber", "flowTotalChunks", "flowIdentifier" e "flowFilename". Ad esempio, basta sostituire "flowFilename" con "someParam". –

Problemi correlati