我有一个特定的问题,我需要在使用 angular 构建的表单中添加嵌套表单。
静态(非编程),我可以执行以下操作:
<form>
...
<ng-form>
<input ng-model="myModel" required>
</ng-form>
...
</form>
嵌套表单中的验证错误会使外部表单无效。这正是我需要的。
但我似乎无法通过指令以编程方式执行此操作。在模板中,我有以下内容
<div dynamic-nested-form="">
</div>
我有以下内容:
(function () {
angular
.module('controls')
.directive('dynamicNestedForm', dynamicNestedForm);
function dynamicNestedForm($compile) {
return {
restrict: 'A',
link: linkedFunction
};
function linkedFunction($scope, element) {
var nestedForm = angular.element('<ng-form><input ng-model="myModel" required></ng-form>');
element.append($compile(nestedForm)($scope));
}
})();
表单确实被注入 DOM 并且处于无效状态,在 Chrome 元素视图中,我看到了
<div dynamic-nested-form="" class="ng-scope">
<ng-form
class="ng-pristine ng-scope ng-invalid ng-invalid-required">
<input ng-model="myModel" required=""
class="ng-pristine ng-untouched ng-invalid ng-invalid-required">
</ng-form>
</div>
但外部形式不会失效。加载外部表单时看不到内部表单吗?
我究竟做错了什么?