6

我有一个带有 templateUrl 的简单 AngularJS 指令。该指令用于工具提示。

  • 目前我附加了一个隐藏元素。然而,该指令的使用非常频繁,因此发生了数百个 data <-> DOM 绑定,并且页面速度变慢到无法使用的程度
  • 我只想实际加载模板,并在鼠标悬停时附加元素。

阅读角度文档,似乎没有任何方法可以制作指令延迟渲染。我错过了什么吗?

   

    // Tooltip directive
    return function(){
        return {
        templateUrl: 'someTemplate.html',
        replace: false, // Append our tooltip, rather than replace the element's contents.
            link: function (scope, element, attrs) {
                $element.on({
                mouseenter: function () {
                    // Would like to render, and set up bindings, here (my question)
                    },
                mouseleave: function () {
                    // Destroy rendered element here (simple stuff, not my question)
                    }
                });
            }
        }   
    }
4

1 回答 1

1

我相信你需要注入$compile服务来在你的回调中做这样的事情:

templateMarkup = '<p> {{ property }} </p>';
$compile(templateMarkup)(scope);

我还没有考虑过将其放入您的代码中的确切步骤,但请告诉我这是否有帮助。

于 2013-07-17T14:11:33.650 回答