AngularJS:还包含子绑定的ngBindHtml?

时间:2015-03-21 01:44:53

标签: javascript angularjs ng-bind-html ngsanitize

AngularJS v1.3.14:目前,我已成功使用' ngSanitize'我的角度应用程序中的模块带有" ng-bind-html"将一些HTML绑定到页面上某个区域的输出。这是有效的,并不需要旧的$ sce信任HTML'东西。

但是,我想在子HTML中嵌入子绑定。

所以......像这样的东西......

angular.module('myApp', ['ngSanitize'...)
    .controller('SomeCtrl', ['$scope', function($scope) {
        $scope.myHTML = '<p>hello world</p>';
}]);
...
<div ng-app="myApp" ng-controller="SomeCtrl" ng-bind-html="myHTML"></div>

这样的事情并不......

angular.module('myApp', ['ngSanitize'...)
    .controller('SomeCtrl', ['$scope', function($scope) {
        $scope.myContent = 'hello world';
        $scope.myHTML = '<p>{{myContent}}</p>';
}]);
...
<div ng-app="myApp" ng-controller="SomeCtrl" ng-bind-html="myHTML"></div>

思想?

1 个答案:

答案 0 :(得分:2)

像这样的简单指令就可以了:

<div bindy="myHTML"></div>
.directive('bindy', function($compile) {
  return {
    link: function($scope, $element, $attrs) {
      var html = $scope.$eval($attrs.bindy);
      $element.html(html);
      $compile($element.contents())($scope);
    }
  };
});