基本上我想在父指令中显示ngModel的验证消息,但输入是在嵌套指令内处理的。
到目前为止,验证没有传播,到目前为止我能找到的唯一方法是从嵌套指令中查看$ valid和$ error变量,并找到将其传播给父级的方法。
我遇到了require: "^ngModel"
但是根据我的上一次尝试,它并没有将验证提交给父范围。
想知道是否有办法这样做,除了黑客试图观察$ error并支持它?
修改: 以下是codepen演示我的问题:http://codepen.io/anon/pen/GJygp
在代码笔中,我有2个指令:parent-directive和child-directive。验证在child-directive内处理,但我想在parent-directive处显示验证消息。
答案 0 :(得分:2)
对于这类内容, form
/ngForm
directive 非常有用
它实例化 FormController ,并允许您访问每个输入或选择子元素(带有ngModel
和名称)。我强烈建议仔细查看相关文档(上面链接)。
除其他外,您可以访问任何子元素的有效性状态(按名称引用),如下所示:
<!-- Creates a `parentForm` property in the current scope -->
<!-- that will give access to child control-elements -->
<div ng-form name="parentForm">
<!-- Creates a child control-element, whose properties -->
<!-- will be accessible under `parentForm.childControl` -->
<input type="text" name="childControl" ng-model="someModel" />
<!-- Uses the various properties of the child control-element -->
<!-- available to the parent from-element (through the FormController) -->
<div>
Child control-element info:<br />
pristine: {{parentForm.childControl.$pristine}}<br />
dirty: {{parentForm.childControl.$dirty}} <br />
valid: {{parentForm.childControl.$valid}} <br />
invalid: {{parentForm.childControl.$invalid}} <br />
</div>
</div>
另请参阅基于原始代码集的 short demo 。