I am having a recurring issue where I am unable to use directives that are included inside of template partials retrieved via $http. I assume that I need to use `$compile` or `$apply` to the template in order to get the directives to work. The following code attempts to use $apply on returned data from `$http` but it doesn't work:

```
$http({
    url: 'get/data',
    method: "POST"
})
.success(function (data, status, headers, config) { 
     $scope.$apply(function () {
         $scope.data = data;
     });
})
.error(function (data, status, headers, config) { $scope.status = status; });

```

The returned value (`data`) is simply a template that contains some HTML that has a few directives in it. If I write

```
.success(function (data, status, headers, config) { $scope.data = data }

```

then the template loads, but any directives in the template won't work. So I figured I need to use `$apply` or `$compile` to bind the directives to angular. There is clearly something fundamental that I'm missing in my understanding of angular and how directives can be bound to work in dynamically loaded templates. Any help would be much appreciated.