我正在尝试缓存包含一些角度变量的html文件,但是当我将文件内容追加到dom时,所有变量都只是纯文本,如{{ variable.name.here }}
我正在使用$ http.get检索html文件,如下所示:
$http.get('app/shared/partials/raise-error.html').then(function(res){
$templateCache.put('raiseErrorBlock', res.data);
});
...这是raise-error.html(部分内容):
<div id="raiseError" ng-show="errorParams.raise" class="slide-down">
<div class="raiseErrorWrapper">
<div class="rew-header">
<i class="fa fa-bug"></i>
<span class="rewh-title">{{ errorParams.title }}</span>
</div>
</div>
</div>
我在run()块中运行$ http.get,无论如何。
编辑:我可以看到它是一个templateCache问题。 templateCache是否支持变量,或者它只能缓存静态数据?答案 0 :(得分:0)
您必须使用$compile
服务才能使角度表达式正常工作。
var $el = $compile('<div>{{myData}}</div>')(scope);
$body.append($el); // wrapped $body with jqLite
正如 ngdoc 所说:
$ compile - 将HTML字符串或DOM编译成模板并生成 一个模板函数,然后可以用来链接范围和 模板在一起。
您还可以使用更短的方法在$ templateCache中存储内容,例如。
$http.get('http://myserver.com/file.html', {
cache: $templateCache
}).then(function(response) {
// do sth
});
我也为你创造了plnkr。希望它会对你有所帮助。 http://plnkr.co/edit/ls4kllAvdVb3qMvm3mBA?p=preview