Javascript 使用自定义指令在表单必填字段上动态设置ngIf

Javascript 使用自定义指令在表单必填字段上动态设置ngIf,javascript,html,angularjs,Javascript,Html,Angularjs,首先,我是个新手。我已经创建了一个指令,该指令在HTML中的表单组div中使用。这包含一个必需的输入。该指令的目的是检查是否基于范围值显示整个div 从视觉上看,这是可以预期的,但。。。当将ng if指令设置为假值时,表单提交仍然会给出错误,因为当表单不再包含该输入时,缺少所需的值 这是我的代码: //我的指令 应用程序指令(“showCountry”,函数($compile){ var linkFunction=函数(范围、元素、属性){ var testingVariable=scope.

首先,我是个新手。我已经创建了一个指令,该指令在HTML中的表单组div中使用。这包含一个必需的输入。该指令的目的是检查是否基于范围值显示整个div

从视觉上看,这是可以预期的,但。。。当将ng if指令设置为假值时,表单提交仍然会给出错误,因为当表单不再包含该输入时,缺少所需的值

这是我的代码:

//我的指令
应用程序指令(“showCountry”,函数($compile){
var linkFunction=函数(范围、元素、属性){
var testingVariable=scope.testingVariable;
if(测试变量){
开关(testingVariable.toLowerCase()){
案例“A”:
//不执行任何操作,保持div可见。
打破
违约:
//隐藏整个分区。
属性。$set(“ngIf”,false);
编制(要素)(范围);
打破
}
}
};
返回{
限制:“A”,
link:linkFunction
};
});

获取范围变量
验证
,并在条件中使其为false

if (testingVariable.toLowerCase()) {
    switch (testingVariable.toLowerCase()) {
        case "A":
            // Do nothing, keep the div visible.
            break;
        default:
            // Hide the entire div.
            scope.validate = false;
            attributes.$set("ngIf", false);               
                      $compile(element)(scope);
            break;
    }
}

国家/地区输入已隐藏,不会出现动画
国
{{myForm.country.$error}
var-app=angular.module(“myApp”,[]);
应用程序指令(“showCountry”,函数($compile){
var linkFunction=函数(范围、元素、属性){
var testingVariable=scope.testingVariable;
console.log(testingVariable.toLowerCase())
if(testingVariable.toLowerCase()){
开关(testingVariable.toLowerCase()){
案例“A”:
//不执行任何操作,保持div可见。
打破
违约:
//隐藏整个分区。
scope.validate=false;
属性。$set(“ngIf”,false);
$compile(元素)(范围);
打破
}
}
};
返回{
限制:“A”,
link:linkFunction
};
});
应用控制器(“测试”,功能($范围){
$scope.testingVariable='false';
});

谢谢您的回复。如果我有多个必填字段怎么办?如何避免创建另一个验证变量?对于相同的条件,可以在不同字段中使用相同的变量。你的情况如何?我有这个代码,但我有两个必填字段。如果我使用相同的变量,则其中一个输入将不会显示。如果您检查输入,我会在其中添加
ng If=“validate”
,如果您忽略它,它将与其他输入一样工作,