angularjs:在ng-if设置为true后避免调用相同的代码

时间:2015-08-04 14:58:53

标签: angularjs angularjs-directive

我有一个使用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) {

                });
            }

0 个答案:

没有答案