0

Если все мои шаблоны находятся в моем index.html, с каждым внутри своего собственного блока <script type="text/ng-template" id="foo">...</script>, как я могу получить их в $templatecache, чтобы Жасмин знал, что они существуют?

В настоящее время Жасмин относится ко всем моим значениям templateUrl, как если бы они были всеми удаленными путями. Я просмотрел karma-ng-html2js-preprocessor, но, похоже, это для получения дискретных файлов шаблонов в $templatecache, а не в сценариях.

Здесь a plunker показано, как загружаются встроенные шаблоны.

+0

Любая причина, чтобы не сделать их дискретные файлы? Как вы в настоящее время получаете шаблоны в каждом маршруте или директиве? 'template' ожидает строку,' templateUrl' ожидает URL-адрес, так как вы их получите? Отправьте пример? – deitch

+0

@deitch - уточню вопрос. Этот конкретный проект находится в Ionic, который не работает с дискретными файлами. Я могу поместить их в шаблон $ templateCache с помощью Gulp, но я хочу попытаться «запастись» этим проектом настолько, насколько я могу (Ionic не поставляется с тестированием, испеченным в любом случае, поэтому я бы не стал полностью его исключать). Тем не менее, я действительно хочу, чтобы шаблоны были встроены, потому что это упрощает и ускоряет работу пользовательского интерфейса. – Andrew

+0

Я хотел бы услышать от кого-то, у кого больше опыта в перфекционировании углового. Я мог видеть, что 1000 внешних файлов замедляют работу, но 5-10 шаблонов вряд ли будут так важны. В любом случае они кэшируются после первого запроса. – deitch

ответ

0

Используйте karma-ng-template-preprocessor модуль:

Препроцессор для принятия HTML-файлы, которые имеют <script type="ng/template"> и положить их в AngularJS Шаблон Cache Благодаря карма-нг-html2js-препроцессора для идеи и фрагменты кода

Например, настроить karma.conf.js следующим образом:

// preprocess HTML files before serving them to phantomJS 
    preprocessors: {'app/**/*.html': 'ng-template'}, 
// include HTML files in the karma session 
    files: ['**/*.html'], 

// if you have defined plugins explicitly, add karma-ng-template-script-to-template-cache-preprocessor 
// plugins: ['karma-ng-template-preprocessor'] 

ngTemplatePreprocessor: { moduleName: 'inlineTemplates'} 

Используйте его в т ресы как например:

function foo() 
    { 
    beforeEach(module('inlineTemplates'));  
    } 

describe('example test', foo); 

Ссылки

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

  • Нет связанных вопросов^_^