如何根据属性值调用范围函数

时间:2015-06-04 12:31:11

标签: javascript angularjs

我的应用中有几个“保存并关闭”链接,其中每个按钮都有一个独特的功能,可以在点击时运行,由指令ng-really-click定义。该指令确认关闭,然后运行关闭功能,例如

<a ng-really-click="someCloseFunction(p1, p2)" />

现在从应用程序的其他地方,我想“假装”用户点击了保存按钮,但绕过了确认。在任何特定时刻,我都不知道应该调用哪个close函数,我必须通过查找close链接并检查其ng-really-click属性来找出它。

一旦我在属性中定义了函数调用表达式,我想针对变量currentScope中的作用域调用该函数。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我猜测Angularish的方法是每个链接使用不同的控制器。然后,让scope和rootScope成为ng-really-click函数的指针。即:

CNTRL1:

$scope.funcPointer = $rootScope.funcPointer = function() {console.log('yo1');}

CNTRL2:

$scope.funcPointer = $rootScope.funcPointer = function() {console.log('yo2');}

在视图上,使用func指针:

<div ng-controller="Cntrl1"><a ng-really-click="funcPointer(p1, p2)" /></div>

然后从应用程序的任何位置执行rootScope中的函数:

从任何Ctrl:

$rootScope.funcPointer(val1, val2);