【发布时间】:2015-03-01 12:08:21
【问题描述】:
是否有正确的方法将非角度回调(最好是匿名函数)名称传递给指令,然后从指令中激活它。我的动机是从指令接口到遗留的非角度代码。
这就是我想要的:
<my-Directive callback="function (param) {some-legacy-function(param)}">
然后激活它:
app.directive('myDirective', function($scope) {
return {
scope: {
callback: '&'
}
controller: function($scope) {
$scope.someMethod = function() {
$scope.callback($scope.param);
}
}
});
请注意,回调函数未在任何范围内定义,最好是匿名的(但我也可以使用非匿名函数进行管理)。
我发现其中一种方法是通过简单地传递一个字符串然后执行 eval 来调用该方法,但在阅读之后我了解到这种方法是有问题的(安全方面)。
任何建议将不胜感激。
【问题讨论】:
-
表达式总是在作用域上计算。为什么在 HTML 视图中有这个 JS 代码而不是控制器代码?
标签: angularjs callback directive