Angular指令元素
Angular directive's element
我有这样的指令:
function dndDirective($timeout) {
return {
template: '<div class="dndComponent"> Title: {{title}} </div>',
scope: {
title: '<'
},
compile: myCompile
};
function myCompile(tElement, tAttrs, transclude) {
return {
pre: function postLink($scope, element, attrs, transclude) {
$scope.$watchGroup(['title'], function(newVals) {
$timeout(function() {
jQuery('.dndComponent').first().myPlugin();
jQuery(element).myPlugin();
});
})
}
}
}
为什么jQuery('.dnd').first()
和jQuery(element)
是不同的对象?它们有不同的上下文,我的jQuery插件只能使用第一个选项。
jQuery(element)
返回使用该指令的元素的jQuery包装器。jQuery('.dndComponent').first()
返回具有该类的第一个元素。
假设该指令只被使用一次(不要依赖于此),选择器返回element
的子节点,element
是'.dndComponent'的父节点;
= = =
也考虑做$(element).find('. dndcomponent '),因为这样你可以使用你的指令N次,它将始终工作,否则它将始终返回第一个指令的.dndComponent
。
相关文章:
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 在元素指令上添加 css
- replace:true 如何与元素指令一起使用
- 防损层,从角度元素指令传递属性指令
- 角度:在元素指令上添加属性指令
- 如何在 angularjs 中验证元素指令
- 删除对象时执行元素指令动画的角度方式
- 从元素指令中的路由提供程序获取参数
- 基于会话服务的隐藏/显示元素指令-AngularJS
- AngularJS:从控制器中访问元素指令的属性
- 自定义元素指令和属性
- 如何在元素指令上使用ng-if来有条件地调用模块
- 将属性指令传递给元素指令
- 如何在AngularJS中以编程方式计算HTML元素(指令)的属性名
- 正在包装集合指令中元素指令的模板
- 无法正确使用元素指令
- Angularjs嵌套元素指令
- 使用 AngularJS 在选择元素指令中触发消息“onfocusleave”的“console.log”
- Angular自定义元素指令没有显示在屏幕上
- 带ng-init的AngularJS元素指令在视图渲染之前运行