Javascript 从外部访问表单验证指令
我是angular方面的初学者。我的表单具有验证功能,仅在验证通过时启用保存按钮Javascript 从外部访问表单验证指令,javascript,angularjs,Javascript,Angularjs,我是angular方面的初学者。我的表单具有验证功能,仅在验证通过时启用保存按钮 <input type="submit" value="Save" ng-disabled="!frmRegister.$valid" /> 我有指令,该指令将负责全球范围内的表单提交 app.directive('mysavebtn',function(){ return { restrict : "E",
<input type="submit" value="Save" ng-disabled="!frmRegister.$valid" />
我有指令,该指令将负责全球范围内的表单提交
app.directive('mysavebtn',function(){
return {
restrict : "E",
scope :{
},
controller : function($scope){
},
link : function(scope,elem,attr){
},
template : '<div style="clear:both;" >'
+'<input type="submit" ng-disabled="!frmRegister.$valid" value="Directive Save" />'
+'</div>'
}
});
app.directive('mysavebtn',function(){
返回{
限制:“E”,
范围:{
},
控制器:功能($scope){
},
链接:功能(范围、要素、属性){
},
模板:“”
+''
+''
}
});
但即使表单有效,指令保存按钮也始终处于禁用状态注意:我将保存按钮保留在表单中以了解验证
请检查工作示例
如何从mysavebtn指令获取访问表单验证?请注意。如果您在指令中使用的是隔离作用域,则可以使用“=”符号(双向绑定)在该作用域中传递表单有效性状态。为此,您需要稍微修改指令的HTML:
<mysavebtn form-valid="frmRegister.$valid"></mysavebtn>
以及:
app.directive('mysavebtn', function() {
return {
restrict: "E",
scope: {
formValid: "="
},
controller: function($scope) {
},
link: function(scope, elem, attr) {
},
template: '<div style="clear:both;" >' + '<input type="submit" ng-disabled="!formValid" value="Directive Save" />' + '</div>'
}
});
app.directive('mysavebtn',function(){
返回{
限制:“E”,
范围:{
formValid:“”
},
控制器:功能($scope){
},
链接:功能(范围、要素、属性){
},
模板:“”+“”+“”
}
});
现在,表单有效性状态在指令的模板中通过
formValid变量。
见工作表。
有关更多信息,请阅读Angular guide。如果在指令中使用隔离作用域,则可以使用“=”符号(双向绑定)在该作用域中传递表单有效性状态。为此,您需要稍微修改指令的HTML:
<mysavebtn form-valid="frmRegister.$valid"></mysavebtn>
以及:
app.directive('mysavebtn', function() {
return {
restrict: "E",
scope: {
formValid: "="
},
controller: function($scope) {
},
link: function(scope, elem, attr) {
},
template: '<div style="clear:both;" >' + '<input type="submit" ng-disabled="!formValid" value="Directive Save" />' + '</div>'
}
});
app.directive('mysavebtn',function(){
返回{
限制:“E”,
范围:{
formValid:“”
},
控制器:功能($scope){
},
链接:功能(范围、要素、属性){
},
模板:“”+“”+“”
}
});
现在,表单有效性状态在指令的模板中通过
formValid变量。
见工作表。
有关更多信息,请阅读Angular guide。如果在指令中使用隔离作用域,则可以使用“=”符号(双向绑定)在该作用域中传递表单有效性状态。为此,您需要稍微修改指令的HTML:
<mysavebtn form-valid="frmRegister.$valid"></mysavebtn>
以及:
app.directive('mysavebtn', function() {
return {
restrict: "E",
scope: {
formValid: "="
},
controller: function($scope) {
},
link: function(scope, elem, attr) {
},
template: '<div style="clear:both;" >' + '<input type="submit" ng-disabled="!formValid" value="Directive Save" />' + '</div>'
}
});
app.directive('mysavebtn',function(){
返回{
限制:“E”,
范围:{
formValid:“”
},
控制器:功能($scope){
},
链接:功能(范围、要素、属性){
},
模板:“”+“”+“”
}
});
现在,表单有效性状态在指令的模板中通过
formValid变量。
见工作表。
有关更多信息,请阅读Angular guide。如果在指令中使用隔离作用域,则可以使用“=”符号(双向绑定)在该作用域中传递表单有效性状态。为此,您需要稍微修改指令的HTML:
<mysavebtn form-valid="frmRegister.$valid"></mysavebtn>
以及:
app.directive('mysavebtn', function() {
return {
restrict: "E",
scope: {
formValid: "="
},
controller: function($scope) {
},
link: function(scope, elem, attr) {
},
template: '<div style="clear:both;" >' + '<input type="submit" ng-disabled="!formValid" value="Directive Save" />' + '</div>'
}
});
app.directive('mysavebtn',function(){
返回{
限制:“E”,
范围:{
formValid:“”
},
控制器:功能($scope){
},
链接:功能(范围、要素、属性){
},
模板:“”+“”+“”
}
});
现在,表单有效性状态在指令的模板中通过
formValid变量。
见工作表。
有关更多信息,请阅读《角度指南》建议的指令间通信方式和最佳实践之一是使用
require
访问其他指令控制器(在本例中为表单
指令)
我修改了你的plnkr:
app.directive('mysavebtn',function(){
返回{
限制:'E',
要求:“^form”,
作用域:{},
链接:函数(范围、元素、属性、formCtrl){
scope.formCtrl=formCtrl;
},
模板:“”+
'' +
''
}
});
将您的mysavebtn
放入表单
,以便它可以访问它。您现在可以访问整个表单
API,并且有更多的可能性
顺便说一句:没有必要为此创建绑定(正如现在接受的其他答案一样)。建议的指令间通信和最佳实践之一是使用
require
访问其他指令控制器(在本例中为form
指令)
我修改了你的plnkr:
app.directive('mysavebtn',function(){
返回{
限制:'E',
要求:“^form”,
作用域:{},
链接:函数(范围、元素、属性、formCtrl){
scope.formCtrl=formCtrl;
},
模板:“”+
'' +
''
}
});
将您的mysavebtn
放入表单
,以便它可以访问它。您现在可以访问整个表单
API,并且有更多的可能性
顺便说一句:没有必要为此创建绑定(正如现在接受的其他答案一样)。建议的指令间通信和最佳实践之一是使用
require
访问其他指令控制器(在本例中为form
指令)
我修改了你的plnkr:
app.directive('mysavebtn',function(){
返回{
限制:'E',
要求:“^form”,
作用域:{},
链接:函数(范围、元素、属性、formCtrl){
scope.formCtrl=formCtrl;
},
模板:“”+
'' +
''
}
});
将您的mysavebtn
放入表单
,以便它可以访问它。你现在