javascript - AngularJS Directive Template URL Requires Leading Slash, Breaks Tests -


'use strict';  directives.directive('primaryclient', function() {   return {     restrict: 'a',     templateurl: 'views/directives/primary-client.html',     scope: {       'client': '='     }   }; }); 

i've got simple directive replaces element contents of template file. shown above, it's broken. error in chrome error: unexpected request: views/directives/primary-client.html. adding leading slash (i.e. /views/directives/primary-client.html) fixes problem.

however

in tests, absolutely unable working leading slash. file loaded , passing test when omit leading slash, of course breaks actual functionality.

i can share more code tests if needed, examples of tests loaded templates seem show directive omitting leading slash. i've got <base href="/"> set in index.html. there i'm doing wrong that's forcing leading slash?

i ran issue relative paths , tests. in directives have leading slash:

templateurl: '/dist/js/templates/my-template.html' 

this works fine in app, when run tests unexpected request: get error.

i able fix using karma-ng-html2js-preprocessor , playing around relative versus non-relative filepaths until working.

basically, in karma config, preprocessors have (notice no slash before public):

preprocessors: {         'public/js/templates/**/*.html': ['ng-html2js']     }, 

in file list in karma config have (again, no slash before public):

files: [         'public/js/templates/**/*.html'     ], 

then set preprocessor in karma config follows (notice slash before dist, that's important part)

nghtml2jspreprocessor: {         stripprefix: 'public',         prependprefix: '/dist',         modulename: 'dir-templates'     } 

this means preprocessor take template file @ public/js/templates/my-template.html , put in cache under /dist/js/templates/my-template.html

then in actual test import special module dir-templates, defined under modulename preprocessor above, so:

beforeeach(     module('app') );  beforeeach(     module('dir-templates') ); 

and works!


Comments

Popular posts from this blog

php - get table cell data from and place a copy in another table -

javascript - Mootools wait with Fx.Morph start -

php - Navigate throught databse rows -