1

我正在创建一个接受表单输入的指令,并用任意 HTML 包装该输入。

所以这:

<input ng-model="myModel" required>

变成:

<div>
  some markup here
  <input ng-model="myModel" required>
</div>

从我的指令中更新模型的有效性和价值的正确方法是什么?通常我会要求ngModelController并调用$setValidityand $setViewValue,但是,由于ng-model存在于我的嵌入元素上而不是我指令的顶级元素上,因此我似乎无法访问ngModelController.

4

1 回答 1

0

我在这些场景中所做的就是让你的指令本身实现ngModelController

查看此页面上的“实现自定义表单控件(使用 ngModel)”部分:http: //docs.angularjs.org/guide/forms

ngModelController另一个技巧,如果你有一个表单元素,如果 $error 中有一个错误键,你可以获取实例:

  angular.forEach($scope.myForm.$error, function(o, name) {
        for (var i = 0; i < o.length; i++) {
            o[i].$setValidity(name, false);
        }
    });
于 2013-07-26T00:58:42.030 回答