Моя функция директивной ссылки приведена ниже -
link:function(scope,elem,attr){
$(document).on("click",function(event){
var target = $(event.target);
if(target.is('.detailBox') || target.closest('.detailBox').length){
return;
}
scope.$emit('closeDetailBox');
scope.$apply();
});
}
И мой жасмин TC для тестирования излучения приведен ниже -
it('Some other box click', function () {
spyOn($rootScope, '$emit');
var theboxelement = '<button class="thebox"></button>';
var thebox = $(theboxelement);
$('body').append(thebox);
var spyEvent = spyOnEvent('.thebox', 'click');
thebox.trigger("click");
expect($rootScope.$emit).toHaveBeenCalledWith('closeDetailBox',theboxelement);
thebox.remove();
});
Событие emit должно было сработать и перехватить, но оно так и не сработало. Я получаю сообщение об ошибке: «Ожидаемый spy $ emit был вызван с помощью ['closeDetailBox', ''], но он так и не был вызван».
Я занимаюсь этой проблемой уже 2 дня, не могу исправить, пожалуйста, помогите!