2016-07-20 3 views
1

Если я использую getterSetter с подтверждением формы, то я не могу ввести что-либо недействительное во вход. напримерНевозможно ввести недопустимое значение представления при использовании ng-model-optios getterSetter

HTML

<input type="number" ng-model-options="{getterSetter: true}" ng-model="ctrl.myVal" min="10"> 

JS

this.myVal = function(value) { 
    if (value !== undefined) { 
    this.actualVal = value; 
    } else { 
    return this.actualVal; 
    } 
}; 

https://plnkr.co/edit/dUPXiD1elGfqZSf9x9Bk?p=preview

С этим входом, я не могу войти в любое число, как было бы меньше, чем 10.

Я пытаюсь получить такое же поведение я получаю без getterSetter. А именно: пользователь может ввести любой недопустимый ввод в представлении, но модель будет установлена ​​только в том случае, если вход действителен.

Кто-нибудь знает обходное решение Могу ли я получить форму проверки, работая с getterSetter, или кто-нибудь может объяснить, почему это происходит?

ответ

2

Это происходит потому, что value, переданный вашему сеттеру, может быть undefined, обманывая ваш getterSetter в обращении с вызовом «сеттер» как звонок «getter».

Изменение состояния от value !== undefined к arguments.length исправит проблему: Updated plnkr

Смежные вопросы