以下内容在我的HTML中调用:
<input data-autocomplete>
存在解析错误(基本HTML错误),因为在运行data-autocomplete
时,它会在其HTML中调用另一个指令:data-autocomplete-results
。当运行/编译它时,它会在<input>
元素内部创建一个div,因为这是坏HTML,这意味着尽管它在源中,它也不会显示。
解决方案是我在<inupt>
元素内部的指令编译的下面示例。
compile: function(element) {
element.after('<div data-autocomplete-results></div>');
}
然而,unlicke element.append
,element.after
没有通过范围,实际上,我认为是一个静态的HTML。该指令在附加的div中调用,但当然,那些依赖于范围的东西不起作用。
有没有办法将范围传递给此element.after
?
答案 0 :(得分:1)
您可以尝试创建一个角度元素,并根据您希望它与$ compile
的范围进行编译e.g。
var newElement = angular.element('<div data-autocomplete-results></div>');
element.after($compile(newElement)(scope));
此外,您需要在链接功能中执行此操作,因为在摘要周期的编译阶段,范围不可用。