callback
격리 범위와 함께 지정된 특성 을 사용하는 양식 지시문이 있습니다 .
scope: { callback: '&' }
그것은 내부 앉는 ng-repeat
I 안으로 통과 발현되도록이 포함 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]) );
그러나 특히 깔끔하지 않다고 생각하며 격리 범위에 추가 물건을 넣는 것과 관련이 있습니다.
더 좋은 방법이 있습니까?
플 런커 놀이터는 여기 (콘솔을 열어 둔 상태).
ng
API 와 일치 합니다. 예를 들어 ng-click="someFunction()"
함수 실행으로 평가되는 표현식입니다.
$scope.callback
의 callback="someFunction"
속성과 속성 으로 설정됩니다 scope: { callback: '=' }
. $scope.callback
이다 나중에 호출되는 함수. 실제 속성 값 은 분명히 문자열입니다-항상 HTML의 경우입니다.