ngBindHtml the directive does not compile $ templates; it only inserts a template into the DOM.
I copied ngBindHtml( source code ) and added $ compile to it
new directive:
app.directive('compileHtml',['$sce', '$parse', '$compile',
function($sce, $parse, $compile){
return {
link: function(scope,element,attr){
var parsed = $parse(attr.compileHtml);
function getStringValue() { return (parsed(scope) || '').toString(); }
scope.$watch(getStringValue, function (value) {
var el = $compile($sce.getTrustedHtml(parsed(scope)) || '')(scope);
element.empty();
element.append(el);
});
}
};
}]);
Template:
<div compile-html="trustedHtml"></div>