2016-04-26 13 views
1

私が取り組んでいるプロジェクトでAngular's JSのよく知られているngファイルアップロードディレクティブ(https://github.com/danialfarid/ng-file-upload)を使用していますが、検証に関して問題があります。ユーザーが特定のファイル形式をアップロードできないように、ngf-patternディレクティブを追加しました。これは正常に動作し、無効な各ファイルは$ invalidFiles配列で使用できます。この配列をクリアするにはどうしますか?Angular JS ngファイルアップロード

無効なファイルが使用されたことを検出するために、$ invalidFiles配列を使用していて、ユーザーに警告します。ファイルはUIに表示されず、モデルに追加されませんが、フォームが無効なためフォームを送信できません。私は有効なファイルを追加した後でしかフォームを提出できません。無効なファイルを検出する方法はありますか?まだフォームを送信できますか?

希望しています。ありがとう!

+0

のセクションでは、公式ドキュメントをチェックできますか? – Sampath

+0

はい!ここで見つけることができます:http://jsfiddle.net/2vq88rfs/631/。無効なファイルを追加するとモデルに追加されず、エラーファイルの配列に追加され、有効なファイルが追加されるまでフォームは無効になります。私はちょうどエラーをキャッチすることができますが、まだいくつかの有効なファイルが既に追加されていた前にフォームを提出したい。それが助けてくれることを願っています。 – tsahnar

+1

@tsahnar無効なフォームを送信したい場合、フォームが有効かどうかを知るポイントは何ですか? – Akis

答えて

0

おそらくあなたが本当に必要なものは、ngf-changeいうしngf-selectです。ドキュメントに基づいて、ngf-changeディレクティブに割り当てたハンドラ関数は、選択、削除、またはクリアされるたびに呼び出されます。

達成したいのは、有効か無効かにかかわらずフォーム提出を許可することだけであれば、もう1つのアプローチはng-model-optionsです。 allowInvalidというオプションがありますが、デフォルトではfalseです。これをtrueに設定すると、そのトリックを行います。だからあなたの例では

<button name="bla" multiple accept="image/*"    
     ngf-keep="true" 
     ng-model="myFiles" 
     ngf-pattern="'image/*'" 
     ngf-max-size="1MB" 
     ngf-change="handleFiles($files, $invalidFiles)" 
     ngf-model-options="{allowInvalid: true}"> 
    Select Files 
</button> 

お知らせ私たちはここに変更されている最後の2つのディレクティブ。完全なリファレンスについては

私たちはあなたのシナリオのフィドルを持つことができ、あなたはFull reference - File select and drop

+0

ありがとうございます、あなたが言ったように、そのトリックをやった! – tsahnar

+0

@tsahnar心配しないで、それがあなたのために働くなら、それを投票してください。 – kavare

1

は何が必要このです:JsFiddle

$scope.submit = function() { 
    alert('form is ready'); 
    } 
+0

フォームが有効であるかどうかをチェックする条件を削除しましたので、全体のポイントが失われます – tsahnar

+0

エラーをキャッチしてフォームを送信することはできますか?あなたは何が必要なのですか? – Sampath