Javascript 如何使用AngularJS$templateCache.get()?
当我的Angular控制器初始化时,我需要缓存一些HTML文件 根据Angular,我可以通过以下方式向Angular添加HTML模板:Javascript 如何使用AngularJS$templateCache.get()?,javascript,angularjs,templates,caching,Javascript,Angularjs,Templates,Caching,当我的Angular控制器初始化时,我需要缓存一些HTML文件 根据Angular,我可以通过以下方式向Angular添加HTML模板: $templateCache.get('templateId.html') 但我不能让它工作。我尝试在控制器和模块run()函数()中获取模板文件。但是我可以在网络控制台中看到模板没有被提取 app.run(function($templateCache) { $templateCache.get('templ.html'); }); 我做错了什么?您
$templateCache.get('templateId.html')
但我不能让它工作。我尝试在控制器和模块run()函数()中获取模板文件。但是我可以在网络控制台中看到模板没有被提取
app.run(function($templateCache) {
$templateCache.get('templ.html');
});
我做错了什么?您必须使用http请求获取html,然后才能将其存储在模板缓存中。例如:
$http.get('templ.html', {
cache: $templateCache
}).then(function(result) {
console.log(result);
});
您可以使用$templateRequest获取模板 $templateRequest服务运行安全检查,然后使用$http下载提供的模板,成功后将内容存储在$templateCache中。如果HTTP请求失败或HTTP请求的响应数据为空,将抛出$compile错误(可以通过将函数的第二个参数设置为true来阻止异常)。请注意,$templateCache的内容是可信的,因此当tpl类型为string且$templateCache具有匹配项时,将忽略对$sce.GetTrusteDrl(tpl)的调用
文档:$templateRequest我误解了文档。我以为get()是“HTTP获取此模板URL”。但这只是一个getter方法。要向$templateCache提供带有HTTP GET的模板,请参阅所选答案。使用
$templateRequest
而不是$HTTP
不是更好,因为它可以自动并以角度可预测的方式执行异步模板获取+缓存?