gpt4 book ai didi

angularjs - 在指令链接函数中访问父元素(body)

转载 作者:行者123 更新时间:2023-12-02 22:00:40 25 4
gpt4 key购买 nike

给定类似于这样的 HTML 结构:

<body>
<div id="one" my-directive></div>
<div>
<div id="two" my-directive></div>
</div>
</body>

当我尝试访问 two 的父元素时,它可以工作并且日志返回父 div,但是当父元素是正文时,如 one 情况,它不起作用并返回一个空集。

app.directive 'myDirective', ->
(scope,iElement,iAttrs) ->
console.log iElement.parent()

编辑:我对此问题的猜测是我的应用程序的主体在客户端呈现并附加到模块的 run 方法上的主体元素。 html 是用 $('body').html($compile(body.render())($rootScope)); 插入的,我想该指令是在 $compile 函数中调用之前的内容被插入到正文中。我可以解决这个问题吗?

最佳答案

事实上,您正确理解了您的问题:$compile 将触发元素上的模板编译和链接阶段,因此在执行此操作时它没有父级。

解决这个问题的简单方法是首先将 HTML 附加到正文,然后编译它。

var html = body.render();
$('body').html(html);
$compile(angular.element(body))($rootScope);

或者,如果您不想编译整个主体而只想编译新元素:

var elem = $( body.render() ).appendTo($('body'));
$compile(elem)($rootScope);

关于angularjs - 在指令链接函数中访问父元素(body),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com