The content contains some image tag and it worked just fine with the ng-bind-html but I found bug. See my picture below, my JSON contained some iframe tag but the output isn't output the html. Why? ng-bind-html avoid iframe tags?

The content contains some image tag and it worked just fine with the ng-bind-html but I found bug. See my picture below, my JSON contained some iframe tag but the output isn't output the html. Why? ng-bind-html avoid iframe tags?

ngBindHtml will pass the HTML through $sce.getTrustedHtml before displaying it. I suspect this is what would be removing the iframe.
According to the docs, $sce.trustAsHtml can be used to avoid this check, so long as you fully trust any HTML coming from this source - an iframe from an untrusted source could likely do a number on nasty things to visitors to your page.
$scope.codeOut = $sce.trustAsHtml(data.html);
Be very careful with this methodology!
UPDATE:
Remember that $sce must be included ...
var someHTML_Directive = ['$sce', function($sce) {
...
}];