我有一个使用ng-if在某些条件下显示的指令。
一旦满足条件,链接函数就会触发,我使用$ compile将指令内容替换为一些HTML块。
然后在某些时候指令被隐藏,当它再次显示时,调用相同的代码来重新创建HTML块。我尝试在范围上设置标志,但是一旦ng-if设置为false,范围值就会丢失。
如果设置回true,每次ng时避免重新创建HTML块的正确方法是什么?换句话说,如何确保仅在ng-if设置为true时才生成HTML块?
link: function (scope, element, attrs) {
if (!scope.initialized) {
$http.get('some url to method on server' } }).then(function (response) {
var list = '';
response.data.forEach(function (link) {
list += '<a href=' + link + '>' + link + '</a>';
});
element.html('<div>' + list + '</div>');
$compile(element.contents())(scope);
scope.initialized = true;
}, function (response) {
});
}