Angular JS:将函数传递给指令模板不起作用

时间:2013-04-30 23:30:13

标签: angularjs angularjs-directive

我是AngularJS的新手。我正在写一个带有函数名的指令(因为这会偶尔改变),然后我将它设置为模板中的ng-click函数来调用控制器上的函数。但是,它似乎没有被解雇,我确信我做的事情完全错了所以任何帮助都会很棒!

我想要的 我的指令fire-fn="callThis($index)", 通过注入模板的html标记来调用$scope.callThis上的MyCtrl

代码在这里: http://plnkr.co/edit/epMfDwZILgJ5W9qIIPgr?p=preview

感谢您的帮助!

1 个答案:

答案 0 :(得分:10)

您需要删除链接函数中发生的'$ parent'内容,并在指令中使用ng-click="fireFn()"调用它,而不是使用{{}}。

http://plnkr.co/edit/VJNOyx0sBRo0QrcJLsOB?p=preview

查看工作版本(带索引!)

'&'的方式来自Angular docs的传递属性很奇怪:

  

通常需要通过表达式将数据从隔离范围传递到父范围,这可以通过将局部变量名称和值的映射传递到表达式包装器fn来完成。例如,如果表达式是increment(amount),那么我们可以通过将localFn称为localFn({amount:22})来指定金额值。