1

Я бы хотел проверить мою угловую директиву, которая является оберткой вокруг slickgrid.Модуль тестирования угловой директивной упаковки slickgrid

'use strict'; 
describe('Unit: Grid Directive', function() { 
    var $scope; 
    var element; 

    beforeEach(module('grid')); 
    beforeEach(inject(function($compile, $rootScope) { 
    $scope = $rootScope;  
    element = angular.element('<grid class="slickgrid-table" id="miscGrid" query="query"/>'); 
    $scope.query = { symbol: 'AAAA' }; 
    $compile(element)($scope); 
    $scope.$digest(); 
    })); 

Проблема заключается в том, что slickgrid использует JQuery, чтобы найти идентификатор для того, где он должен вставить это сетка.

Error: SlickGrid requires a valid container, #miscGrid does not exist in the DOM. 

Мой вопрос: как я могу заставить это работать? Как я могу «обмануть» slickgrid, чтобы понять, что элемент, который я пытаюсь скомпилировать, является допустимым контейнером?

ответ

1

Вместо того чтобы обманывать что-либо, мне было проще просто добавить элемент в DOM для большинства случаев. Согласно примеру из githithub проекта, контроль должен быть в DOM, чтобы быть инициализирован должным образом в любом случае (http://mleibman.github.io/SlickGrid/examples/example-explicit-initialization.html)

Я склонен поставить следующие строки в любой директивы спецификации

var sandbox; 
beforeEach(function() { sandbox = angular.element('<div>'); angular.element(document.body).append(sandbox); }); 
afterEach(function() { sandbox.remove(); sandbox = null; }); 

Тогда просто добавьте ваша директива для песочницы перед ее компиляцией.

Смежные вопросы