gpt4 book ai didi

angularjs - 当输入类型为 "file"时,$dirty 无法按预期工作

转载 作者:行者123 更新时间:2023-12-02 23:29:22 25 4
gpt4 key购买 nike

我对 AngularJS 还很陌生。问题是我有一个包含两个字段的表单 - 名称和个人资料图片,如下面的代码所示。我正在使用 ng-upload ( https://github.com/twilson63/ngUpload )。我希望“保存”按钮仅在任一字段为脏且当前未发生上传时才起作用,以便用户单击“保存”按钮时不会触发多个发布请求。但看起来, $dirty 在“姓名”字段中工作正常,但在“个人资料图片”字段中则不然。我只是错过了什么吗?对于 AngularJS 初学者来说,如何让它尽可能简单。任何帮助将不胜感激。

             //Code
<form id='picUpload' name='picUpload' ng-upload-before-submit="validate()" method='post' data-ng-upload-loading="submittingForm()" action={{getUrl()}} data-ng-upload='responseCallback(content)' enctype="multipart/form-data">
<input type="text" name="name" data-ng-model="user.name" maxlength="15" id="user_screen_name" required>
<input type="file" name="profilePic" data-ng-model="user.profilePic" accept="image/*">
<div class="form-actions">
<button type="submit" class="btn primary-btn" id="settings_save" data-ng-disabled="!(picUpload.name.$dirty|| picUpload.profilePic.$dirty) || formUploading">Save changes</button>
</div>
</form>

//In my JS code
$scope.submittingForm = function(){
$scope.formUploading = true;
}

问候!

最佳答案

我做了一个指令ng-file-dirty

  .directive('ngFileDirty', function(){
return {
require : '^form',
transclude : true,
link : function($scope, elm, attrs, formCtrl){
elm.on('change', function(){
formCtrl.$setDirty();
$scope.$apply();
});
}
}
})

关于angularjs - 当输入类型为 "file"时,$dirty 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com