2015-06-21 4 views
0

Привет У меня есть директива, которая меняет вкладки одним нажатием кнопки. Я просто хочу вызвать ngSubmit для проверки формы изнутри директивы. Является ли это возможным?invoking ngSubmit from директива

Директива

angular.module 'myapp' 
.directive 'nextButton', [() -> 
    return { 
    restrict: 'A' 
    replace: true 
    transclude: false 
    scope: { 
     saveLocal: '&saveDataLocal' 
     nextTab: '=' 
    } 
    link: (scope, elem, attrs) -> 
     console.log scope.saveLocal 
     elem.bind 'click',()-> 
     console.log attrs 
     scope.saveLocal 'app' 
     angular.element('#'+scope.nextTab).trigger('click') 
    } 
] 

мой HTML в нефритовых шаблонах:

form#generalFormScc(name="form" ng-submit="saveForm(form, $event)") 
    input(type='text', placeholder='Name', ng-model="name", required) 
    button(next-button next-tab="'next'" save-data-local="ngSubmit" form-name="'generalFormScc'") Next 

здесь, следующей вкладка идентификатор для запуска следующей вкладки, копь-данных локального должен вызвать ngSubmit

Я знаю, что могу напрямую вызвать директиву saveForm() из директивы, но я хочу также проверить правильность html по умолчанию. Поэтому я хочу запустить ngSubmit.

Есть ли способ? Спасибо

ответ

2

Ну, я узнал, что я мог бы просто получить идентификатор формы и вызовите метод представить на ней для дальнейшего использования.

'use strict' 

angular.module 'myApp' 
.directive 'nextButton', [() -> 
    return { 
    restrict: 'A' 
    replace: true 
    transclude: false 
    scope: { 
     saveLocal: '&saveDataLocal' 
     nextTab: '=' 
     formName : '=' 
    } 
    link: (scope, elem, attrs) -> 
     console.log scope.saveLocal 
     elem.bind 'click',()-> 
     angular.element('#'+scope.formName).submit() 
     if not angular.element('#'+scope.formName).hasClass 'ng-invalid' 
      angular.element('#'+scope.nextTab).trigger('click') 
    } 
] 
Смежные вопросы