У меня есть директива формы, которая использует указанный атрибут callback с областью выделения:
scope: { callback: '&' }
Он находится внутри ng-repeat, поэтому выражение, которое я передаю, включает в себя id объекта в качестве аргумента функции обратного вызова:
<directive ng-repeat = "item in stuff" callback = "callback(item.id)"/>
Когда я закончил с директивой, он вызывает $scope.callback() из своей функции контроллера. В большинстве случаев это нормально, и все, что я хочу сделать, но иногда я хотел бы добавить еще один аргумент из самого directive.
Есть ли выражение angular, которое позволит это: $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]) );
Но я не думаю, что это особенно опрятно, и это включает в себя добавление лишних вещей в область выделения.
Есть ли лучший способ?
Плункерная площадка здесь (консоль открыта).
