AngularJS中的多个指令

时间:2014-02-03 15:55:07

标签: javascript angularjs angularjs-directive

我为2个div定义了两个指令:一个用于验证电话号码,另一个用于电子邮件验证。这里的问题是,当我运行它时,它将只执行一个在directives.js文件中作为第二个给出的验证。在HTML页面中,我有两个不同的电话号码和电子邮件div。我该如何解决这个问题?

<div id=maindiv><div class="number"><input id="Cont_No" name="phone" type="text" data-phone placeholder="ENTER NUMBER" ng-model="phone"/></div><div class="mail"  ><input id="Cust_Email" name="email" type="email" data-email placeholder="ENTER EMAIL" ng-model="email" /></div></maindiv>.

上面给出了Html。下面给出了指示性描述

angular.module('myApp.directives', []).directive('email', function() {
return {
    restrice: 'A',
    require: 'ngModel',
    link: function(scope, element, attrs, ctrl) {
        angular.element(element).bind('blur', function() {
//some code
});              
    }            
}        

});

angular.module('myApp.directives', []).directive('phone', function() {
return {
    restrice: 'A',
    require: 'ngModel',
    link: function(scope, element, attrs, ctrl) {
      //console.log("helo");
        angular.element(element).bind('blur', function() {
//some code
 });              
    }            
}        
});

这里只有电话指令正在执行。如果重新排列orser,只有电子邮件指令才会执行。

2 个答案:

答案 0 :(得分:0)

我不确定,但我相信问题可能是你通过两次调用module('moduleName', [])基本上覆盖了该模块。

尝试使用module('moduleName', [])调用第一个指令,使用module('moduleName')

调用第二个指令

答案 1 :(得分:0)

Hy,我认为你的映射有问题。 Try my example with your code。看来你没有初始化模块。