5
角度指令能否将参数传递给指令属性中指定的表达式中的函数?
我有一个使用callback带有隔离范围的指定属性的form指令: 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游乐场(已打开控制台)。