在加载页面时从指令编译HTML字符串

时间:2015-04-23 07:16:31

标签: javascript html angularjs angularjs-directive contextmenu

在Html中:

<vs-context-menu id="contextMenu" class="dropdown-menu pointer-cursor" context-menu-hide></vs-context-menu>
角度JS指令中的

directive('vsContextMenu', function ($compile) {
    var defaultTemplate = '<ul style="list-style-type: none; padding-left: 20px;" ><li>AA</li></ul>';

    return {
        restrict: 'E',
        link: function(scope, element, attrs) {
              element.html(defaultTemplate).show();
              $compile(element.contents())(scope);
        }
    };
});

上下文菜单显示单击精细。但它在页面加载时闪烁。如何在加载页面时隐藏它?

1 个答案:

答案 0 :(得分:2)

不使用链接函数渲染它,而是使用指令的template参数,这不会显示闪烁效果&amp;还要在该元素上添加ng-cloak

<强>指令

directive('vsContextMenu', function($compile) {
    var defaultTemplate = '<ul ng-cloak style="list-style-type: none; padding-left: 20px;" ><li>AA</li></ul>';
    return {
        restrict: 'E',
        template: defaultTemplate
    };
});