используйте angular и ui-bootstrap, сделайте директиву о привязке модальных событий, не могу работать

мое приложение использует angular 1.3 и ui-bootstrap, и я создаю в приложении некоторую директиву, подобную этой

```

var DataTableModule= angular.module('Component.DataTable',['ui.bootstrap'])
     .directive('datatable',['$compile','$log',
        function($compile,$log){
           return {

              compile:function($element){
                   $element.on('click','th.header',function(){
                         $log.debug('click event is ok!');
                   })
                   return function link(scope,$element){
                      .....
                   }
              }
           }
        }
    ])

```

и если я использую на простой странице, как это:

<datatable></datatable>

и я нажимаю на дом, консоль выводит: событие щелчка в порядке!

но если я использую на модальной странице вот так:

<script type="text/ng-template" id="modal.html">
   <div class="modal-header">
                <h3 class="modal-title">Title</h3>
            </div>
            <div class="modal-body">
                <datatable></datatable>
            </div>
            <div class="modal-footer">
                <button class="btn btn-primary" ng-click="ok()">sure</button>
                <button class="btn btn-warning" ng-click="cancel()">cancel</button>
            </div>
</script>

и я нажимаю DOM, это всегда не работает!

и я не знаю почему, есть что-то особенное в модальном бутстрапе?


person user2674707    schedule 10.03.2015    source источник


Ответы (1)


Я думаю, что .on() нельзя использовать с селекторами. документация говорит

on() - Does not support namespaces, selectors or eventData

документация angular.element: https://docs.angularjs.org/api/ng/function/angular.element.

это:

$element.on('click','th.header',function(){
  $log.debug('click event is ok!');
})

должно быть:

$element.children().find('th').on('click',function(){
  $log.debug('click event is ok!');
})
person Vicruz    schedule 10.03.2015
comment
нет, это не проблема, потому что я использую простую страницу (не использую модальную страницу), может работать. - person user2674707; 10.03.2015
comment
Параметр функции компиляции директивы $element и параметр функции ссылки $element имеют разные вещи? - person user2674707; 10.03.2015