2014-09-13 11 views
9

flow` działa lepiej niż cokolwiek innego.Angular - ng-flow Jak wysłać ciąg wraz z plikiem

chcę wysłać tekst jedno wejście również wraz z pliku przy użyciu ng-flow w Angular js

Proszę mi pomóc faceci ...

+0

ack! Też tego potrzebuję. Możesz dodać parametr zapytania do żądań pobierania za pomocą opcji "zapytanie" podczas konfiguracji, ale nie wiem, jak to zrobić w momencie przesyłania. Denerwujący! Czuję, że jest to ogromna biblioteka z naprawdę złożoną funkcjonalnością, która niestety ma naprawdę mały zasięg dokumentacji ... – Askdesigners

+0

dokładnie nie warto jej używać, używając ng-flow – user3800108

+0

Nie sądzę, że jest to przypadek porzucenia biblioteki, ale raczej zobaczenia jak możesz go zgiąć zgodnie ze swoimi potrzebami. Zobacz moją odpowiedź poniżej. – Askdesigners

Odpowiedz

6

Więc znalazłem rozwiązanie tego! Nie chodzi o to, że biblioteka jest zła, ale o to, że dokumentacja jest bardzo cienka i pozostawiają ją do zrozumienia, jak to zrobić. Skończyło się na tym, że podążałem całą ścieżką w kodzie, który pobiera żądanie, kiedy się buduje.

W poprzednim wydaniu musiałem zatrzymać przesyłanie plików natychmiast po upuszczeniu, a ktoś tutaj zalecił, aby przesłać plik w funkcji ng-click.

To były kody, które mi dali. (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(); 

}; 

Następnie po zalogowaniu się z e okazało się, że obiekt miał możliwość query się tam zmodyfikowany blok następująco.

ctrl.uploadItems = function(e){ 

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

    e.upload(); 

}; 

W ten sposób można zmodyfikować obiekt w każdym razie w czasie przesyłania.

5

znalazłem tę odpowiedź za AidasK na https://github.com/flowjs/ng-flow/issues/33

można przekazać parametry niestandardowe z opcją zapytania. Masz trzy opcje, aby to zrobić.

Opcja pierwsza:

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

Opcja druga:

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

Wariant trzeci:

<div flow-init="config"> 

</div> 

W kontrolerze:

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

Aby dodać parametr zapytania w momencie dodawania pliku można dokonać poprzez przechwytywanie zdarzeń plików dodanej w kontrolerze i ustawienie parametru zapytania nie tak:

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

Te dodatkowe parametry zostaną dodane do wysyłania i mogą być obsługiwane na serwerze.

+0

Jak mogę uzyskać dostęp do tych dodatkowych parametrów po stronie serwera? – razp26

+1

@ razp26 Możesz pobrać je na serwerze dokładnie w ten sam sposób, w jaki uzyskasz parametry "flowChunkNumber", "flowTotalChunks", "flowIdentifier" i "flowFilename". Na przykład po prostu zamień "flowFilename" na "someParam". –

Powiązane problemy