将事件发送到范围中的角度指令函数
Send event to angular directive function in scope
我正在尝试创建一个带有angular的指令,用于显示一个通过ajax调用将其选项加载到模板中的多选。这是我现在的指示:
function AngularMultiselect () {
return {
restrict: 'E',
replace: true,
templateUrl: 'temp.html',
scope: {
tipo: "@"
},
link: function(scope, element, attrs){
scope.open_tab = function(){
element.addClass('open');
$(document).on("click",function(){ //beign called at the same time
console.log("document clicked");
});
};
console.log('multiselect being called');
}
}
}
HTML:
<filtro tipo="client"></filtro>
模板内部:
<button type="button"
class="multiselect btn"
ng-click="open_tab()">
我遇到的问题是,选项卡在单击的同时打开和关闭。我会使用该事件来停止事件的传播,但我无法发送它…我尝试了open_tab($event)
,但$event
包含'client'
。有什么想法吗?
在这里,您可以看到它在工作:http://codepen.io/vandervals/pen/VeZrdV
只需推迟文档点击处理程序附加即可避免此问题:
而不是:
scope.open_tab = function(){
element.addClass('open');
$(document).on("click",function(){ //beign called at the same time
console.log("document clicked");
});
};
只需:
scope.open_tab = function(){
element.addClass('open');
$timeout(function() {
$(document).on("click",function(){ //no longer beign called at the same time
console.log("document clicked");
});
}, 1, false);
};
为了避免触发第二个处理程序的初始点击事件
相关文章:
- 从html创建一个指令,该指令按类名应用函数
- AngularJS指令单元测试中未定义的函数
- AngularJS指令部分应用的函数don'不起作用
- 角度指令's链接函数未被调用
- 从子指令调用指令函数不起作用
- 参数未在指令函数中传递
- 如何从 JavaScript 调用指令函数
- Angular.js调用控制器中的指令函数
- 将事件发送到范围中的角度指令函数
- 从父指令角度调用指令函数
- 在具有不同控制器的视图中使用ng-click和指令函数
- 通过参数将 mongo 文档 ID 传递给角度指令函数会抛出解析错误
- Angular指令——函数执行的正确顺序
- 又一个没有传递参数的Angular指令函数
- 如何使子链接指令函数在父控制器之前运行
- AngularJS中指令函数的执行顺序
- 在没有应用指令函数的指令内部重复
- 使用$scope.$parent.$$childHead从控制器访问指令函数.AngularJS中的functionNa
- angularjs设计.从另一个控制器调用指令函数
- 调用angularjs指令函数的范围问题