2016-07-10 7 views
3

AngularJSとの最初の週、私はコンテンツを読むときそれは素晴らしい作品https://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjsAngularJSの双方向指示を作成する方法は?

app.directive('fileModel', ['$parse', function ($parse) { 
    return { 
     restrict: 'A', 
     link: function(scope, element, attrs) { 
      var model = $parse(attrs.fileModel); 
      var modelSetter = model.assign; 

      element.bind('change', function(){ 
       scope.$apply(function(){ 
        modelSetter(scope, element[0].files[0]); 
       }); 
      }); 
     } 
    }; 
}]); 

からファイルのアップロードディレクティブのコードを使用 - ユーザーは、私はJSでそれを読んで、ファイルを選択し、その後にそれを送信した後、サーバー私はそれをクリアしたい(nullを設定することによって)。そしてここに問題があります - それは動作しません、<input>のファイル名は変更されません。

私はそれを変更する必要がありますどのように双方向の指示を取得する?

答えて

1

Angularjsは、 'file'タイプの入力要素の双方向バインディングをサポートしていないようです。 issueを参照してください。

あなたが探しているものを達成する簡単な方法は、ファイルのアップロードが完了した後に入力値をリセットすることです。入力フィールドに「fileInput」というIDを設定してから、入力値を空白にリセットするには、

document.getElementById("fileInput").value = ""; 

を使用します。

同じものについては、Js fiddleです。

+0

ありがとう、残念ながら、このようなバインディングはありません。 – greenoldman

関連する問題