Ich bin gestern von eckigen 1.0.8 zu eckigen 1.2.2 gewandert, und neben ein paar anderen Dingen, die kaputt gegangen sind und ich habe bereits behoben, die Die $ render Funktion der folgenden Direktive wird nicht mehr ausgelöst.
Hat jemand encouter ein solches Verhalten vor 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();
});
});
}
};
});
Markup:
<input type="file" data-ng-model='model.formData.resume' name="resume" data-valid-file data-my-validate data-value-required="true">
Ich nehme an, dass dies so richtig ist wie es wird, werde ich das morgen überprüfen und werde Sie auf dem Laufenden halten, könnten Sie antworten, wenn ich auf weitere Probleme stoße ?. Grundsätzlich habe ich die Angular 1.2.x Build-Funktion verwendet, um ng-Modell an ein Dateifeld zu binden, nachdem dieses Problem aufgetreten ist. –
Ja, es dauerte ziemlich viel zu graben, um dies zu finden. Ich würde die Änderungsprotokolle im Auge behalten - ich wäre nicht überrascht, wenn Angular etwas tun würde, um das zu beheben. In der Zwischenzeit sehe ich keinen Grund, warum eine höhere Priorität Probleme verursachen sollte. – KayakDave
Hört sich gut an, ich werde es morgen überprüfen und Sie wissen lassen, ob es das war :) Danke! –