我在 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/