AngularJs模板未从$ templateCache加载

时间:2014-08-22 12:30:12

标签: javascript angularjs

我目前正在构建一个Angular应用程序,需要通过任何其他网页上的脚本标记进行嵌入。

我决定使用一些JS来构建app包装器,ng-view元素等,然后再使用resumeBootStrap来启动应用程序。

然后我使用Grunt构建文件和grunt-angular-templates来构建一个文件,然后从第三方网页调用该文件。

因此,最初的dom构建等工作正常,但是,我正在尝试从$templateCache加载模板以加载我们使用grunt-angular-template添加到构建文件的视图。我可以看到模板正好被添加到构建文件中,但是,当我尝试加载第三方页面时,我遇到错误,因为它试图从本地服务器加载视图,而不是缓存/构建文件。

我的代码如下:

var app = angular.module('MyApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
    'ngScrollbar'
]);

app.config(function ($routeProvider) {

    $routeProvider
        .when('/', {
            templateUrl: 'views/main.html',
            controller: 'MainCtrl'
        })

});
angular.module('MyApp').run(['$templateCache', function($templateCache) {
  'use strict';

  $templateCache.put('views/main.html', '...')

...

关于如何做到这一点的任何建议都非常赞赏,或者确实是关于如何最好地包含我的所有视图等的任何提示,以便我不需要远程调用主机服务器来获取模板文件。

干杯

2 个答案:

答案 0 :(得分:0)

喜欢:

$templateCache.put('views/main.html', $templateCache.get('views/main.html'))

https://docs.angularjs.org/api/ng/service/$templateCache

如果你使用grunt

https://github.com/karma-runner/karma-html2js-preprocessor

答案 1 :(得分:-1)

你是否在html中包含由grunt任务生成的js文件,即:

<script src="/templates.js"></script>