javascript - 从外部指令访问表单验证

标签 javascript angularjs

我是 Angular 初学者。我的表单具有验证功能,仅在验证通过时启用保存按钮

<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>'
            }
        });

但是即使表单有效,指令保存按钮也始终处于禁用状态!!!。注意:我将保存按钮保留在表单内以了解验证

请查看here在工作示例中

如何从 mysavebtn 指令访问表单验证?请指教。

最佳答案

如果您在指令中使用隔离范围,则可以使用“=”符号(双向绑定(bind))在该范围内传递表单有效性的状态。为此,您需要稍微修改指令的 HTML:

<mysavebtn form-valid="frmRegister.$valid"></mysavebtn>

还有 JS:

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>'
  }
});

现在,表单有效性状态可以通过指令的模板内部使用 formValid 变量。 查看工作PLNK 。 有关更多信息,请阅读 Angular directive指南。

关于javascript - 从外部指令访问表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162544/

相关文章:

javascript - 更改添加到购物车的背景颜色

angularjs - 使用 AngularJS 路由持久化查询字符串

javascript - 如何在 AngularJS 中对变化的列表进行动画处理?

javascript - ionic 框架 animate.css slideInUp 和 SlideOutUp 动画不工作

javascript - 2D 数组到 JsTree 兼容 JSON

javascript - 谷歌地球根据纬度和经度值计算海拔高度

angularjs - 如何说 Protractor 等待页面加载?

javascript - 如何在 javascript 中调用 Controller 而不是 html Angular JS

javascript - Chrome 中的性能问题

javascript - (Ajax)登陆页面网址而不重新加载内容