Мой код выглядит примерно так -угловых JS' в форме ввода
<form name="myForm" ng-submit="!myForm.phone.$isEmpty(this.$viewValue)" action="/my/url" method="get">
<input name="phone">
<button type="submit">submit</button>
</form>
Теперь я не могу отправить форму, даже если я заполнить поле номер телефона.
Но если я код так:
<form name="myForm" ng-submit="!myForm.phone.$isEmpty(myForm.phone.$viewValue)" action="/my/url" method="get">
<input name="phone">
<button type="submit">submit</button>
</form>
Его прекрасно работает.
Таким образом, трудность заключается в «этом». Я не могу даже проверить контекст этого, это должен быть контекст $ scope.myForm.phone, но почему-то это не так. Может кто-то объяснит.
Значит ли это, что даже если я хочу, чтобы контекст был myForm.phone, я не могу сделать это на мой взгляд? поскольку контекст всегда будет родительским, т. е. областью. Разве это не нарушает нормальное javascript-поведение лексического охвата? –
Нет, у вас нет силы изменить область действия. Однако, если вы реализуете [настраиваемую директиву] (http://plnkr.co/edit/deAQoIw4KfekIh3ZOt1j?p=info) и применитесь к входам в форме, директива будет обладать областью поля, так как она будет ссылаться на 'ng-model' поля –