如何使用AngularJS $ templateCache.get()?

时间:2014-07-15 12:11:18

标签: javascript angularjs templates caching

当我的Angular控制器初始化时,我需要缓存一些HTML文件。

根据Angular $templateCache documentation我可以将HTML模板添加到Angular中:

$templateCache.get('templateId.html')

但我不能让这个工作。我试图在控制器内和模块run()函数(Plunker)内获取模板文件。但我可以在网络控制台中看到未提取模板。

app.run(function($templateCache) {
  $templateCache.get('templ.html');
});

我做错了什么?

2 个答案:

答案 0 :(得分:8)

您必须使用http请求获取html,然后您可以将其存储在模板缓存中。例如:

$http.get('templ.html', {
    cache: $templateCache
}).then(function(result) {
    console.log(result);
});

Updated plunker code here

答案 1 :(得分:1)

您可以使用$ templateRequest来获取模板。

  

$ templateRequest服务运行安全检查,然后使用$ http下载提供的模板,并在成功时将内容存储在$ templateCache中。如果HTTP请求失败或HTTP请求的响应数据为空,则将抛出$ compile错误(通过将函数的第二个参数设置为true可以阻止异常)。请注意$ templateCache的内容是可信的,因此当tpl的类型为string并且$ templateCache具有匹配的条目时,将省略对$ sce.getTrustedUrl(tpl)的调用。

文档:https://docs.angularjs.org/api/ng/service/ $ templateRequest