Angularjs 指令添加一个类以在表单的提交事件上形成输入

标签 angularjs angularjs-directive

当表单提交时,我使用ng-classsubscribed类添加到我的输入

<form name="myform" novalidate>
<input name= "input1" ng-class="{'submitted':myform.$submitted}" ng-model=data.input1/>
.....
....
</form>

虽然它完成了工作,但它太冗长了,而且我有很多需要的输入。我想创建一个指令来使我的 html 看起来像

<form name="myform" novalidate>
<input name= "input1" set-submitted ng-model=data.input1/>
.....
....
</form>

如何为此目的创建指令?

最佳答案

最好简单地使用 ng-subscribed 类,该类由 Angular 在表单提交时自动在表单上设置。

但是出于学术目的,这里有一个简单的指令来设置元素本身的类:

app.directive('setSubmitted', function() {
    return {
        require: '^form',
        link: function(scope, element, attrs, ngFormController) {
            scope.$watch(function() { 
                return ngFormController.$submitted;
            }, function(newVal, oldVal) {
                if (newVal !== oldVal) {
                    element.toggleClass('submitted', newVal);
                }
            })
        }
    };
});

关于Angularjs 指令添加一个类以在表单的提交事件上形成输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27675747/

相关文章:

javascript - angularJs 指令中 templateUrl 的正确路径应该是什么?

javascript - 在 angularjs 指令中不起作用的标签

javascript - AngularJS promise 未定义

javascript - 单元测试 Karma Jasmine 语法错误 : Parse error on "&" Angular Directive binding

javascript - 在 Controller 中重用 Angular 事件

javascript - 为什么简单地使用 ng-init 和 delete 会产生语法错误?

javascript - Angular 中的货币格式化指令

javascript - 使用 ng-repeat 添加多个 View 实例时的范围问题

javascript - Angular - ngRepeat Order before Filter(分页+排序)

html - 如何通过文件上传将进度条集成到angularjs指令中