2016-01-27 9 views
5

Próbuję uzyskać wartość wejściową pliku i wyświetlić go w innym miejscu, poza wejściem. Używam AngularJS v1.4.8 w aplikacji.ng-model nie działa z wprowadzeniem pliku

<input type="file" ng-model="fileName" /> 
<div>{{fileName}}</div> 

To podejście działa dobrze z typem = "tekst", ale nie z typem = "plik".

Dlaczego tak jest i jak mogę rozwiązać ten problem?

Dziękujemy!

+2

zobacz ten link https://jsfiddle.net/JeJenny/ZG9re/ –

+2

http://stackoverflow.com/questions/17063000/ng-model-for-input-type-file –

Odpowiedz

8

Ponieważ moje zadanie było dość proste, zdecydowałem się pójść inną drogą:

html:

<input type="file" file-input="files" /> 
<ul> 
    <li ng-repeat="file in files">{{file.name}}</li> 
</ul> 

JS:

.directive('fileInput', ['$parse', function ($parse) { 
    return { 
     restrict: 'A', 
     link: function (scope, element, attributes) { 
      element.bind('change', function() { 
       $parse(attributes.fileInput) 
       .assign(scope,element[0].files) 
       scope.$apply() 
      }); 
     } 
    }; 
}]); 

Właściwie jest to rozwiązanie z this tutoriala. Zauważ, że może to również działać z wieloma plikami.

Mimo to nie ma nic złego w alternatywie Serghinho, wydaje mi się, że jest tylko łatwiejszy sposób.

Powiązane problemy