I want to use $compile in a controller inside a function and not in a directive. is it possible? I am trying the below code.
$compile(\'
How would Angular know that you changed the DOM? You need to compile your html before appending it (using $compile service).
If you absolutely need access outside of a directive you can create an injector.
$(function() {
// myApp for test directive to work, ng for $compile
var $injector = angular.injector(['ng', 'myApp']);
$injector.invoke(function($rootScope, $compile) {
$('body').prepend($compile('Cancel')($rootScope));
});
});