Каков правильный способ проверки действительности ngModelController?AngularJS ngModelController
У меня есть действительный объект контроллера внутри директивы. Если я вхожу объект в консоль внутри директивы я получаю:
console.log(ctrl)
$dirty: false
$invalid: true
$modelValue: ""
$name: undefined
$pristine: true
$valid: false
$viewValue: ""
...
тогда, если я прошу if(ctrl.$valid === true)
войти объект на консоль снова, он делает с точно таким же выводом.
console.log(ctrl); //ctrl.$valid is false
if(ctrl.$valid == true) {
console.log(ctrl); //ctrl.$valid is false
}
дополнительно, если я осмотреть элемент можно увидеть соответствующий ng-invalid
класс применяется.
Я буду попробуй, чтобы сделать демонстрацию, но я не могу себе представить, что смогу дублировать это.
Обновление Если I console.log(ctrl.$valid)
- это отпечатки true
. Итак, теперь я понимаю, как это проходит условное, но не почему объектная форма показывает $valid
: false
.
Также я сделал plnkr, который показывает пример того, что я делаю, но это не есть эта проблема. example
Если цикл вычисления AngularJS не завершен, когда вы смотрите на значение $ valid, и у вас есть поведение, которое будет зависеть от него, вы можете захотеть добавить либо эту логику в обратный вызов для 'ngModelController' ' s массива '$ viewChangeListeners' или использовать' scope. $ watch (...) ', чтобы попробовать и наблюдать изменения. – rtcherry
Взгляните на этот плункер: http: // plnkr.co/edit/46zIjWBMmmoiZIEytY7w – rtcherry