创建一个不立即呈现的AngularJS指令?

时间:2013-07-17 13:07:35

标签: angularjs angularjs-directive

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

  • 目前我附加了一个隐藏元素。然而,该指令经常使用,因此数百个数据< - >发生DOM绑定,页面变慢到无法使用
  • 我只想实际加载模板,并在鼠标移开时附加元素。

Reading the angular docs, there doesn't seem to be any way of making a directive delay rendering。我错过了什么吗?

    // 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)
                    }
                });
            }
        }   
    }

1 个答案:

答案 0 :(得分:1)

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

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

我没有仔细考虑将这些内容放入您的代码中,但请告诉我这是否有用。