我有一个文件上传器,我喜欢用 jQuery 编写的 UI。它在更改操作上绑定到我的文件元素。更改操作显示了漂亮的预览和其他很酷的东西。它还会检查 mime 类型是否在我的有效 mime 类型列表中。
此外,我已经连接了 angularJS 并监控了我的表单,并且我编写了许多指令来完成我的所有验证。我尝试为我的文件输入字段编写验证,但由于某种原因它永远不会被触发。做一些谷歌搜索表明它是因为 angular 不支持文件输入类型。
所以我将以下代码直接添加到我的 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 文档看来, $apply 应该强制刷新模型,以便一切最终恢复同步。那显然没有发生,但我不确定我做错了什么。谷歌搜索找到了很多关于如何从 Angular 中调用 jQuery 的示例,但关于如何从 jQuery 中调用 Angular 的信息却很少。任何建议将不胜感激!