Angular JS Trying创建了一个header的克隆,但是指令不再适用于clone

时间:2015-03-20 11:33:14

标签: angularjs angularjs-directive angular-ui angular-bootstrap

尝试做这样的事情

    angular.element('.header').addClass('original').clone().insertAfter('.header').addClass('cloned').css('position', 'fixed').css('top', '0').css('margin-top', '0').css('z-index', '500').css('padding-top', '15px').css('padding-bottom', '16px').removeClass('original').hide();
    angular.element('.cloned').show();
    angular.element('.original').css('visibility', 'hidden');
    angular.element('.original').addClass('orginal-header');

它为我的标头创建了一个粘贴标头解决方案的克隆,但后来我注意到我在标题中的链接上的指令,即打开/关闭弹出菜单的帮助链接不再有效。

I.e在我的标题中,我有这个

<div class="dropdown pull-right" dropdown on-toggle="toggled(open)">
        <a class="btn btn-default btn-menu dropdown-toggle" href dropdown-toggle> Help? </a>
        <ul class="dropdown-menu">
          <li><a ui-sref="help">Get Help?</a></li>
          <li><a href open-support-modal>Report an Issue</a></li>
        </ul>
      </div>

我在下拉菜单上有一个点击事件,不再触发复制的标题。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

由于您正在修改DOM,因此您必须告知angular它需要重新审视一些内容。这就是$compile服务的用途。在克隆代码后添加此代码:

var element = angular.element(".cloned"); 
$compile(element.contents())(scope);