Javascript 指令中的AngularJS附加作用域函数
我有一个AngularJS指令,它连接到Javascript 指令中的AngularJS附加作用域函数,javascript,angularjs,tooltipster,Javascript,Angularjs,Tooltipster,我有一个AngularJS指令,它连接到ng repeat中的元素,如下所示: 视图: 指令: angular.module('app') .directive('chatTooltip', function() { return { restrict: 'A', link: function(scope, el, attrs) { scope.
ng repeat
中的元素,如下所示:
视图:
指令:
angular.module('app')
.directive('chatTooltip',
function() {
return {
restrict: 'A',
link: function(scope, el, attrs) {
scope.mute = function() {
console.log('hello world');
};
$(el).tooltipster({
content: $('<button ng-click="mute()" class="btn">Mute</button>'),
position: 'left',
positionTracker: true,
trigger: 'hover',
interactive: true,
autoClose: false
});
}
};
}
);
angular.module('app')
.directive('chatTooltip',
函数(){
返回{
限制:“A”,
链接:功能(范围、el、属性){
scope.mute=函数(){
log('helloworld');
};
$(el).tooltipster({
内容:$(“静音”),
位置:'左',
是的,
触发器:“悬停”,
互动:没错,
自动关闭:错误
});
}
};
}
);
我想调用scope
或$scope
-中定义的mute()
函数?由于插件在指令中添加了HTML内容-我不确定我需要做什么?我可以试着猜测
这里的问题是html是由jQuery解析的。而不是angular的解析器
因此,在您提供任何定制并调用预定义方法之前,我建议您为内容创建一个元素:
var button $(....);
然后将此值传递给
内容选项,并使用按钮强制订阅按钮的单击事件。在('click')
方法上。请查看此问题/答案:
它展示了如何在jquery更改后“重新绑定”angularjs,以及如何从jquery调用angularjs函数
但是,简而言之,您可以使用如下代码从作用域调用angularjs函数(通过id标识控制器):
单击按钮时会发生什么情况?请执行console.log静音,以检查是否调用了它,然后尝试el.tooltipster
而不是$(el)@voroninp无任何事件发生,@HarishR尝试了它没有响应?我看过一些关于使用$compile
重置东西的东西?
var button $(....);
$('#idFromMyController').scope().myFunction();