2014-01-15 9 views
0

Я немного новичок в угловой, и я печатал директиву, и она не работает. Я думаю, это потому, что я не правильно написал директиву, но я не могу найти ответ нигде. Могу ли я дважды использовать директиву?Как правильно написать директиву angularJS

'use strict'; 

    /* Directives */ 

    angular.module('myApp.directives', []). 

     directive('appVersion', function (version) { 
     return function(scope, elm, attrs) { 
      elm.text(version); 
     }; 

     directive('ngFocus', [function() { 
     var FOCUS_CLASS = "ng-focused"; 
     return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function(scope, element, attrs, ctrl) { 
      ctrl.$focused = false; 
      element.bind('focus', function(evt) { 
      element.addClass(FOCUS_CLASS); 
      scope.$apply(function() {ctrl.$focused = true;}); 
      }).bind('blur', function(evt) { 
      element.removeClass(FOCUS_CLASS); 
      scope.$apply(function() {ctrl.$focused = false;}); 
      }); 
     } 
     } 
    }]); 

    }); 

EDIT: Here is my jade template ask asked for in the comments below 

login 
    form(name='signup_form', novalidate='novalidate', ng-submit='signupForm()') 
     fieldset 
     legend Signup 

     .row 
     .error(ng-show='signup_form.name.$dirty && signup_form.name.$invalid && !signup_form.name.$focused') 

     label Your name 

     input(ng-class='{error: signup_form.name.$dirty && signup_form.name.$invalid}', type='text', placeholder='Name', name='name', ng-model='signup.name', ng-minlength='3', ng-maxlength='20', required='required', ng-focus='ng-focus') 

     .error(ng-show='signup_form.name.$dirty && signup_form.name.$invalid') 
      small.error(ng-show='signup_form.name.$error.required') 
      | Your name is required. 
      small.error(ng-show='signup_form.name.$error.minlength') 
      | Your name is required to be at least 3 characters 
      small.error(ng-show='signup_form.name.$error.maxlength') 
      | Your name cannot be longer than 20 characters 

     br 

     label Your email 

     .error(ng-show='signup_form.email.$dirty && signup_form.email.$invalid && !signup_form.email.$focused') 

     input(ng-class='{error: signup_form.email.$dirty && signup_form.name.$invalid}', type='text', placeholder='Email', name='email', ng-model='signup.email', ng-minlength='3', ng-maxlength='20', required='required', ng-focus='ng-focus') 
     .error(ng-show='signup_form.email.$dirty && signup_form.email.$invalid') 
      small.error(ng-show='signup_form.email.$error.required') 
      | Your name is required. 
      small.error(ng-show='signup_form.email.$error.minlength') 
      | Your name is required to be at least 3 characters 
      small.error(ng-show='signup_form.email.$error.maxlength') 
      | Your name cannot be longer than 20 characters 

     button.button.radius(type='submit') Submit 
+0

Можете ли вы разместить свои html и css PLS? –

+0

Я использовал нефрит, я также опубликую, что –

ответ

3

Первое, что я замечаю, это синтаксическая ошибка. У вас есть две директивы, сидящие друг над другом. Если у вас есть несколько директив в файле, объявить их как это:

angular.module('myApp.directives', []). 
directive('directiveA', function() { 
    return { 
     restrict: 'EA', 
     link: function(scope, element, attrs) {} 
    } 
    }). 
    directive('directiveB', function() { 
    return { 
     restrict: 'A', 
     link: function(scope, element, attrs) {} 
    } 
    }). 
    directive('directiveC', function() { 
    return { 
     restrict: 'E', 
     link: function(scope, element, attrs) {} 
    } 
    }); 

Fix это и дайте нам знать, если вы все еще есть проблемы.

Смежные вопросы