ディレクティブ(隔離されたスコープ、トランスコード、置き換えられた)は、<body>
にマスクを挿入します。
var mask = angular.element('<div id="mask"></div>');
$document.find('body').append(mask);
scope.$on('$destroy', function() {
mask.remove();
});
私は、スコープ上の簡単な放送でこのケースをテストしようとしています
:
var $document, scope, element, rootScope;
beforeEach(inject(function($compile, _$document_, $rootScope, $injector) {
rootScope = $injector.get('$rootScope');
scope = $rootScope;
$document = _$document_;
mask = $document.find('#mask');
element = $compile(angular.element('<overlay id="derp"></overlay>'))(scope);
}));
it('should remove mask when casting the $destory event', function (done) {
scope.$broadcast('$destroy');
scope.$digest();
expect($document.find('#mask').length).toBe(0);
});
任意のアイデアは、なぜこれが動作しませんか?
ディレクティブと仕様全体を表示できますか? –
が追加されました。 – mrzmyr
は同じ結果を生成します。 – mrzmyr