2

AngularJS v1.3.14:目前,我成功地在我的 Angular 应用程序中使用“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>

想法?

4

1 回答 1

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);
    }
  };
});
于 2015-03-21T02:02:47.540 回答