jQuery で記述された UI 用に気に入ったファイル アップローダーがあります。変更アクションでファイル要素にバインドされています。change アクションは、気の利いたプレビューやその他のクールなものを表示します。また、MIME タイプが有効な MIME タイプのリストにあるかどうかもチェックします。
さらに、angularJS を接続してフォームを監視し、すべての検証を行うディレクティブを多数作成しました。ファイル入力フィールドの検証を作成しようとしましたが、何らかの理由で起動されません。いくつかのグーグルを行うと、角度がファイル入力タイプをサポートしていないためであることが示唆されます。
そこで、次のコードを jQuery 変更アクションに直接追加しました。
angular.element(myinput).scope().$apply(function(scope){
scope.project.avatar.$setValidity('image',false);
});
デバッガーで有効性が適切に false に設定されていることがわかりますが、私が持っている ng-class アクションはそれを見ていません。これ以外に、次のタグがあります。
<div ng-class="{error: project.avatar.$invalid}">You did it wrong</div>
そのクラスは決して追加されません。
Angular docs から、 $apply はモデルの更新を強制することになっていたため、すべてが同期されたように見えました。それは明らかに起こっていませんが、何が間違っているのかわかりません。グーグルで検索すると、Angular 内から jQuery を呼び出す方法の例がたくさん見つかりましたが、jQuery 内から Angular を呼び出す方法に関する情報はほとんどありませんでした。どんなアドバイスでも大歓迎です!