我正在研究离子项目。以下指令从其使用的元素中删除类。
angular.module('employer')
.directive('displayTab', function($timeout) {
var css = angular.element('<style>').html(
'.has-tabs{ bottom: 0; }\n' +
'.no-tabs{ top: 44px; }');
document.body.appendChild(css[0]);
return {
restrict: 'A',
compile: function(element, attr) {
var bar = document.querySelector('.tab-nav');
return function($scope, $element, $attr) {
var navigate = $element[0].querySelector('.scroll-element');
$scope.$on('$ionicView.beforeEnter', function() {
bar.classList.remove('sliding');
navigate.classList.remove('no-tabs');
})
}
}
};
});
以下是我到目前为止所尝试的内容。我想测试该指令是否实际从其使用的元素中删除了指定的类(sliding
,no-tabs
)。
describe('directive', function() {
var $rootScope, $compile, $scope;
var el, markup, scrolling, bar;
var markup = '<div display-tab></div>';
beforeEach(function() {
module('employer');
inject(function($injector) {
$rootScope = $injector.get('$rootScope');
$compile = $injector.get('$compile');
$scope = $rootScope.$new();
el = $compile(angular.element(markup))($scope);
});
});
$body.append(el);
$rootScope.$digest;
describe('bar directive', function() {
it('should assign a class to the element', function() {
scope.$emit('$ionicView.beforeEnter');
scope.$digest();
});
});
如何正确测试此指令?