У меня есть следующая форма статическая в AngularJS:
<form name="myForm" class="form-horizontal">
<label>First Name:</label>
<input type="text" name="first_name" ng-model="entity.first_name">
<label>Last Name:</label>
<input type="text" name="last_name" ng-model="entity.last_name">
</form>
Angular создает FormController для меня и публикует его в области (под именем формы). Это означает, что у меня есть доступ к следующим свойствам:
$scope.myForm.first_name.$error
$scope.myForm.last_name.$invalid
...
Это супер полезно!
Но в моем случае я строю форму динамически, используя директивы:
<form name="myForm" class="form-horizontal">
<field which="first_name"></field>
<field which="last_name"></field>
</form>
Директивы <field>
не разрешают действительные элементы <input>
до тех пор, пока через некоторое время (после того, как я извлек некоторые данные с сервера, связал директивы и т.д.).
Проблема заключается в том, что на контроллере формы не определены свойства поля, как если бы динамические поля не регистрировались в FormController:
// The following properties are UNDEFINED (but $scope.myForm exists)
$scope.myForm.first_name
$scope.myForm.last_name
Любая идея, почему? Любое решение/обходное решение?
Вы можете увидеть весь код в этом jsFiddle:
http://jsfiddle.net/vincedo/3wcYV/