2014-01-17 3 views
5

В моей модели содержатся некоторые данные, которые не проходят проверку формы (например, неверный адрес электронной почты, который поступает с сервера). Я все же хочу показать пользователю данные недопустимые модели, чтобы они могли исправить это.Prepopulate форма AngularJS с недопустимыми данными

Минимальный пример:

<form ng-init="email='foo'"> 
    <input type="email" ng-model="email"></input> 
    </form> 

Как получить вход, чтобы показать первоначальную недопустимое значение модели?

JS Fiddle: http://jsfiddle.net/TwzXV/4/

+0

хмм, это хороший вопрос. – allenhwkim

+0

Это открытая проблема https://github.com/angular/angular.js/issues/1412, также вы можете проверить https://groups.google.com/forum/#!topic/angular/8Fk-Ya6Juzo – Reza

ответ

1

Такое поведение сообщается как ошибка. https://github.com/angular/angular.js/issues/2841

Вы можете обойти эту проблему, создав директиву, пока эта ошибка будет исправлена ​​:)

Я получил это от google mailing list

http://jsfiddle.net/nalberg/XccGJ/

app.directive('displayInvalid', function($parse, $filter) { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function(scope, elm, attrs, model) { 
     var displayed = false; 
     scope.$watch(attrs.ngModel, function(newValue, oldValue, scope) { 
      // only set once... on initial load 
      if(displayed == false && oldValue != undefined){ 
      displayed = true; 
      elm.val(model.$modelValue); 
      } 
     }); 
     } 
    } 
}) 
Смежные вопросы