It would make more sense to me that cb=JSON_CALLBACK is added by the directive. The cb=JSON_CALLBACK is indeed specific to $http.jsonp, and the directive is the one knowing that $http.jsonp is used.