AngularJS在指令中附加作用域函数
AngularJS Attach Scope Function in Directive
我有一个 AngularJS 指令,它将 jQuery Tooltipster 附加到ng-repeat
中的元素,如下所示:
视图:
div.chat-wrapper
ul.chat-messages
li(ng-repeat='chat in chatmessages' chat-tooltip)
命令:
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
});
}
};
}
);
我想调用scope
或$scope
中定义的mute()
函数 - ?由于插件在指令中添加了 HTML 内容 - 我不确定我需要做什么?
我可以试着猜测。
这里的问题是你的html是由jQuery解析的。而不是通过角度的解析器。
因此,在您提供任何自定义并调用预定义方法之前,我建议您为内容创建一个元素:
var button $(....);
然后将此值传递给content
选项,并使用button.on('click')
方法强制订阅按钮的单击事件。
请看一下这个问题/答案:
如何用jsf reRender或ajax load替换html内容,并使用AngularJS重新绑定新的DOM?
它展示了如何在jquery更改后"重新绑定"angularjs,以及如何从jQuery调用angularjs函数。
但是,简而言之,您可以使用这样的代码从作用域调用 angularjs 函数(通过 id 标识您的控制器(:
$('#idFromMyController').scope().myFunction();
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- AngularJS:如何与其他控制器共享作用域函数和变量
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- 嵌套的Angular指令触发父对象上的作用域函数
- $uibModal从windowTemplate调用作用域函数
- 角度:创建可以调用作用域函数的自定义指令
- 在DOM(html)上下文中使用角度作用域函数时出现的问题
- 为什么我的作用域函数没有获取从模型传递的数据
- AngularJS在ngClass更改后执行作用域函数
- 控制台.log在 AngularJS 中执行作用域函数
- JavaScript 不作用域函数参数
- 本地作用域函数原型覆盖
- 在 AngularJS 中执行作用域函数内的服务后,范围变量不会更新
- 达到 10 次摘要迭代,中止(作用域函数问题)
- AngularJS在指令中附加作用域函数
- Javascript eval() for Json 字符串注入了全局作用域函数
- JavaScript本地作用域函数
- 从指令调用父作用域函数
- AngularJS ng控制器指令不接受javascript中的变量(作用域函数),也不给出任何错误
- Javascript:从类内部创建全局作用域函数