Tôi đã di chuyển từ góc 1.0.8 sang góc 1.2.2 ngày hôm qua và bên cạnh một loạt các thứ khác bị hỏng và tôi đã sửa, Hàm render $ trên chỉ thị sau không bắn nữa.
Có ai encouter một hành vi như vậy trước 0
directive('validFile', function (utils, $filter) {
return {
require: 'ngModel',
link: function (scope, el, attrs, ngModel) {
if(utils.isMobileAgent())
return;
var form = el.parents().find('form');
ngModel.$render = function() {
debugger;
if(form.hasClass('ng-pristine'))
return;
if(el.val() && el.val().length > 0){
ngModel.$setViewValue(el.val());
}
if(el.hasClass('ng-invalid')){
el.parent().addClass('ng-invalid').addClass('ng-invalid-required');
ngModel.$setValidity(attrs.name, false);
ngModel.$setPristine(attrs.name, false);
scope.fileMsg = $filter('translate')('PLEASESELECT') + ' ' + $filter('translate')(attrs.name);
// scope.layout.showFileError = true;
}
else{
el.parent().removeClass('ng-invalid').removeClass('ng-invalid-required').addClass('ng-valid');
ngModel.$setValidity(attrs.name, true);
}
};
el.bind('mouseover', function(){
if(form.hasClass('ng-dirty') && el.parent().hasClass('ng-invalid'))
el.removeClass('ng-pristine');
});
el.bind('mouseleave', function(){
if(el.val() && el.val().length > 0){
el.addClass('ng-pristine');
}
})
el.bind('change', function() {
scope.$apply(function() {
ngModel.$render();
});
});
form.bind('change', function() {
scope.$apply(function() {
ngModel.$render();
});
});
}
};
});
đánh dấu:
<input type="file" data-ng-model='model.formData.resume' name="resume" data-valid-file data-my-validate data-value-required="true">
Tôi cho rằng điều này là đúng như nó được, tôi sẽ kiểm tra này vào ngày mai và sẽ giữ cho bạn được đăng, bạn có thể trả lời nếu tôi sẽ gặp phải và các vấn đề bổ sung ?. Về cơ bản, tôi đã sử dụng khả năng xây dựng Angular 1.2.x để liên kết ng-model thành một trường tệp sau khi gặp phải vấn đề này –
Yea, phải mất khá nhiều thời gian để tìm ra điều này. Tôi muốn theo dõi nhật ký thay đổi - tôi sẽ không ngạc nhiên khi thấy Angular làm gì đó để sửa lỗi này. Trong khi đó, tôi không thấy lý do tại sao mức độ ưu tiên cao hơn sẽ gây ra bất kỳ vấn đề gì cho bạn. – KayakDave
Âm thanh tốt, tôi sẽ đảm bảo kiểm tra vào ngày mai và cho bạn biết nếu nó là nó :) Cảm ơn! –