如何让templateURL与angular一起使用?

时间:2016-10-24 13:47:32

标签: angularjs unit-testing ng-html2js

在我被重定向到无数重复的问题之前。我希望每个人都知道我已经检查了他们并尝试了他们的解决方案,但它并不适合我。我认为这个问题与我的道路有关,但我们的项目设置方式似乎无法弄清楚什么是错的。所以我将布置我们的项目,希望有人可以帮助我

我们正在使用组件流程,项目的结构如下:

src
   -app
      -components
       -some-component
        components.some-component.module.js
        some-component.html
        some-component.component.js
        some-component.component.spec.js           
config.js
gulpfile.js
karma.conf.js

karma.conf.js

var config = require('./config');
module.exports = function(karmaConfig){
 karmaConfig.set({
  files: [].concat(
    config.source.js.libraries,
    config.source.js.testLibraries,
    config.source.js.apps,
    config.source.js.tests,
    '**/*.html'  // this is me trying path stuff
  },
  frameworks: ['mocha','sinon-chai'],
  ....
  plugins: [
    'karma-firefox-launcher',
    'karma-mocha',
    'karma-sinon-chai',
    'karma-ng-html2js-preprocessor'
  ],
  preprocessor: {
    '**/*.html' : ['ng-html2js']
  },
  ngHtml2JsPreprocessor: {
    stripPrefix: 'src/app',
    moduleName: 'templates',
    cachedIdFromPath: function(filepath){
      console.log('File ' + filepath);
      return filepath;
  }
 });
}

config.js文件很长。它是所有文件位置路径的中心位置。我将提供该文件的一部分:

module.exports = {
  angular: {
    source: {
      js: {
        app: [
          'src/app/**/*.module.js',
          'src/app/**/*.js',
          '!src/app/**/*.spec.js'
        ]
      }
    }
  }
};

我得到的错误是模块'模板'无法使用。就像我说的,我尝试了各种解决方案,但似乎无法解决问题。任何帮助将不胜感激,如有需要,我会更详细地更新这些问题。

提前谢谢你。

修改 规格文件。

describe('component: some-component', function(){
  beforeEach(module('app.components.some-component'));
  beforeEach(module('templates'));
  .....
});

some-component.component.js文件:

angular
  .module('app.components.some-component')
  .component('someComponent', {
    templateUrl: 'components/some-component/some-component.html',
    ....
    }
  });
function Controller(){/* function code here */}

1 个答案:

答案 0 :(得分:0)

我不知道问题是什么。我仍然认为这是一条路径。我们实施了Babel和某人如何修复它。我真的不明白怎么做,但我把这个问题标记为已解决。