grunt-html2js并注入'templates-xxx'模块(模块名称中的破折号)

时间:2015-01-16 17:52:06

标签: angularjs

使用grunt-html2js我得到的views.js包含:

 angular.module('templates-dist', ['../views/attachment-modal.html', ...

 ...

 angular.module("../views/attachment-modal.html", []).run(["$templateCache", function($templateCache) { ...

 (etc. all the views)

我已将此模块添加到我的app.js,如下所示:

angular.module('myApp', [
'ngRoute',
'ui.bootstrap',
'templates-dist', // <--- there it is.
'ui.select']);

我想使用数组表示法将此模块添加到我的routes.js

angular.module('myApp')
.config(['$routeProvider', 'templates-dist', function($routeProvider, X) { ... }

但是,正如你所看到的,我不知道如何做到这一点,因为&#34; -&#34;登录

问题:在上一段代码中,我应该在X中添加什么? 我认为将templates-dist放在没有引号的情况下将在javascript中作为减法进行评估

此外,奖励问题:在注入templates-dist模块后,视图的加载将自动来自templateCache

1 个答案:

答案 0 :(得分:1)

没有理由将其添加到myApp模块的配置阶段。没有与templates-dist关联的提供程序,因此会抛出错误。您可以将它作为依赖项注入到上面的模块

angular.module('myApp', [
    'ngRoute',
    'ui.bootstrap',
    'templates-dist', // <--- there it is.
    'ui.select']);

但是您无法对其进行任何操作,因此不应将其包含在应用程序的配置阶段。

关于$templateCache缓存问题。我在上面的例子中看到你有

 angular.module('templates-dist', ['../views/attachment-modal.html', ...

通常使用Grunt html2js,它会创建一个模块,其中模板的依赖关系为模块,即attachement-modal.html,模块看起来像这样:

angular.module("attachement-modal.html", []).run(["$templateCache", function($templateCache) {
    $templateCache.put("step.html", "YOUR HTML HERE");
}]);

所以现在存储并提供$templateCache