角度指令能否将参数传递给指令属性中指定的表达式中的函数?
我有一个表单指令,它使用具有隔离作用域的指定属性:callback
scope: { callback: '&' }
它位于 里面,所以我传入的表达式包含对象的 作为回调函数的参数:ng-repeat
id
<directive ng-repeat = "item in stuff" callback = "callback(item.id)"/>
当我完成指令时,它从其控制器函数调用。在大多数情况下,这很好,这是我想做的,但有时我想从内部添加另一个参数。$scope.callback()
directive
有没有一个角度表达式可以允许这个:,导致被调用?$scope.callback(arg2)
callback
arguments = [item.id, arg2]
如果没有,最整洁的方法是什么?
我发现这有效:
<directive
ng-repeat = "item in stuff"
callback = "callback"
callback-arg="item.id"/>
跟
scope { callback: '=', callbackArg: '=' }
和指令调用
$scope.callback.apply(null, [$scope.callbackArg].concat([arg2, arg3]) );
但我不认为它特别整洁,它涉及在隔离范围内放置额外的东西。
有没有更好的方法?
这里的Plunker游乐场(打开控制台)。