给定一个类似下面的HTML结构:
<body>
<div id="one" my-directive></div>
<div>
<div id="two" my-directive></div>
</div>
</body>
当我尝试访问two
的父元素时它工作并且日志返回父div,但是当父元素是body时,比如one
,它不工作并且返回一个空集.
app.directive 'myDirective', ->
(scope,iElement,iAttrs) ->
console.log iElement.parent()
**EDIT:**我猜这个问题是我的应用程序的主体在客户端呈现,并附加到模块的run方法的body元素。html是用$('body').html($compile(body.render())($rootScope));
插入的,我猜在内容插入到主体之前,在$compile函数中调用了该指令。我能解决这个问题吗?
1条答案
按热度按时间dxxyhpgq1#
事实上,你正确地理解了你的问题:
$compile
将触发您的元素上的模板编译和链接阶段,因此在执行此操作时它没有父级。解决这个问题的简单方法是首先将HTML附加到主体,然后 * 编译它。
或者,如果您不想编译整个主体,而只想编译新元素: