我有一个包含许多表单输入的表单.所有表单输入都在指令中.
我有一些场景,我需要一个元素的状态来影响其他表单元素的属性,如ng-required.
我很难弄清楚如何在其他表单元素中更新ng-required字段/ $ valid - 它们保持$ valid = false状态 - 我想动态地将ng-required值更改为false它们不再需要,元素变得有效.
在plnkr下面的场景中,如果在第一个Title元素中键入文本,则不再需要第二个元素Title2,但它仍保留在$ valid = false.
我已经尝试使用传递给指令的函数,如下所示,但它似乎没有更新表单元素的有效性...
Plnkr!http://plnkr.co/edit/gCpB7dvBjiOisocjJNlz?p=preview
$scope.toggleRequired = function(content, contentFragment){
if (contentFragment.name =='title' && angular.isDefined(contentFragment.value) && contentFragment.value.length){
$scope.content.title2.required=false;
content.title2.required=false;
}else if (contentFragment.name =='title' && !angular.isDefined(contentFragment.value)){
$scope.content.title2.required=true;
content.title2.required=true;
}
}
Run Code Online (Sandbox Code Playgroud)