(function () { "use strict"; angular.module('shared') .directive('bindHtmlCompile', ['$compile', function ($compile) { return { restrict: 'EA', scope: { boundHtml: '@' }, link: function($scope, $element, $attrs) { var watchDestroy = $scope.$watch('boundHtml', function (newValue, oldValue) { if (newValue) { var ensureCompileRunsOnce = $scope.$watch( function($scope) { return $scope.$eval($attrs.compile); }, function(value) { $element.html(newValue); $compile($element.contents())($scope); ensureCompileRunsOnce(); } ); watchDestroy(); } }); } } }]) })();