10

我遇到的问题是我想做templateUrl: "partials/my-directive.html"

但目前我必须让它templateUrl: "app/partials/my-directive.html被 Karma 加载。

这是我的文件夹结构(基本上是 yeoman 文件夹结构)

app
    partials
        my-directive.template.html
    directives
        my-directive.js
    app.js

karma.conf.js

这是指令代码

   angular.module("exampleApp")
    .directive("adminMod", function () {
        return {
            restrict: "E",
            templateUrl: "app/partials/admin-mod.html",
            scope: {
                props: "="
            }
        }
    });

这是单元测试部分

     beforeEach(module("app/partials/admin-mod.html"));

这是 karma.conf.js

      files: [
        'app/bower_components/jquery/jquery.js',
        'app/bower_components/angular/angular.js',
        'app/partials/*.html'
    ],

    preprocessors: {
        'app/partials/*.html': 'ng-html2js'
    },

    ngHtml2JsPreprocessor: {

       //prependPrefix: ???? what do I make this 
    },

我想让 url 相对于 app 文件夹而不是我的 karma.conf.file 我想我已经用尽了每种路径组合,有人可以解释一下这应该如何使用 Yeoman 角度生成器文件结构

4

1 回答 1

19

问题是我试图使用

ngHtml2JsPreprocessor: {

   prependPrefix: ???? what do I make this 
},

但我真正应该使用的是

ngHtml2JsPreprocessor: {
    stripPrefix: 'app/',
},

然后我可以保持相对于app/文件夹的路线,并在单元测试中要求模板作为这样的模型

beforeEach(module("partials/admin-mod.html"));

这与我的指令中的路径相同

templateUrl: "partials/admin-mod.html",
于 2014-04-03T15:48:35.453 回答