如果在transclusion之后添加,为什么指令下的动态元素具有错误的作用域
Why do dynamic elements under a directive have a wrong scope if added after transclusion?
考虑以下示例,其中一个元素静态地包含在指令定义中,另一个元素稍后添加(使用jQuery):
angular.module('test', []).directive('transcludeThis', [function () {
return {
restrict: 'E',
transclude: true,
replace: true,
template: '<div id="transcluded" data-ng-transclude></div>'
};
}]);
$(function() {
angular.bootstrap(document, ['test']);
$('#transcluded').append('<div>Dynamic (jQuery): </div>').find('*').each(function() {
var $this = $(this);
$this.append(angular.element($this).scope().$id);
});
});
<transclude-this>
<div>Static: </div>
</transclude-this>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://code.angularjs.org/1.3.10/angular.js"></script>
为什么动态元素不在transcluded范围内?
因为在创建指令的作用域时,该动态元素不存在。如果使用angular,则应在指令内部创建动态元素,然后将保持范围。
相关文章:
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- 将动态元素绑定到函数;只剩下一个绑定
- 关于动态元素中循环中的事件
- 对动态元素使用.on()和e.stopPropagation()
- 只删除javascript中的1个动态元素
- 删除在加载dom之后创建的动态元素
- 从服务器和/或客户端加载动态元素的典型技术是什么
- IE7/8中的jQuery动态元素错误
- Jquery动态元素选择器
- AnguarJS$编译的动态元素
- 使用jQuery使动态元素可选择
- jquery在动态元素上调用日期选择器
- 如果在transclusion之后添加,为什么指令下的动态元素具有错误的作用域
- 如何使用jQuery唯一地识别具有相同id的类似动态元素
- 将单击处理程序绑定到动态元素
- 为动态元素附加事件处理程序
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- jQuery中的目标动态元素
- 将动态元素/行添加到 Angularjs 中的多维 Json 数组中
- Jquery 单击函数不适用于动态元素