2016-06-10 6 views
2

У меня есть следующий код из angular site:Поля формы нет на форме объекта Угловое

<form name='form'> 
    <div contentEditable="true" ng-model="content" title="Click to edit">Some</div> 

    <pre>{{form | json}}</pre> 
</form> 

I выводит следующее, что ниже требуемого ввода:

{ 
    "$error": {}, 
    "$name": "form", 
    "$dirty": true, 
    "$pristine": false, 
    "$valid": true, 
    "$invalid": false, 
    "$submitted": false 
} 

К сожалению, я могу» t проверить правильность/ditryness/etc ввода, поскольку в форме нет свойства ввода.

Почему поле не присутствует на объекте формы в угловом?

Relevant plunker

Угловая версия: 1.4.4

ответ

1

Оказывается, что свойство добавляется в виде объекта только(относится к разумным изменениям только в HTML) когда name присутствует атрибут ввода.

Таким образом, этот код (я добавил name='firstName' и некоторые основные проверки: ng-required="true" ради теста):

<form name='form'> 
    <div contentEditable="true" 
     ng-model="content" 
     title="Click to edit" 
     ng-required="true" 
     name='firstName'> Some </div> 

    <pre>{{form | json}}</pre> 
    </form> 

Выведет объект формы с firstName имущества, связанного с входом:

{ 
    "$error": {}, 
    "$name": "form", 
    "$dirty": true, 
    "$pristine": false, 
    "$valid": true, 
    "$invalid": false, 
    "$submitted": false, 
    "firstName": { 
    "$viewValue": " Some ", 
    "$modelValue": " Some ", 
    "$validators": {}, 
    "$asyncValidators": {}, 
    "$parsers": [], 
    "$formatters": [], 
    "$viewChangeListeners": [], 
    "$untouched": false, 
    "$touched": true, 
    "$pristine": false, 
    "$dirty": true, 
    "$valid": true, 
    "$invalid": false, 
    "$error": {}, 
    "$name": "firstName", 
    "$options": null 
    } 
} 

Relevant plunker

+0

ng-model также необходим, очевидно, достаточно ... –

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