javascript - AngularJS:ngBindHtml 还包含子绑定(bind)?

标签 javascript angularjs ng-bind-html ngsanitize

AngularJS v1.3.14:目前,我成功地在我的 Angular 应用程序中使用“ngSanitize”模块和“ng-bind-html”将一些 HTML 绑定(bind)到页面上某个区域的输出。这可以工作,并且不需要旧的 $sce '信任 HTML' 东西。

但是,我想在该 HTML 中嵌入子绑定(bind)。

所以...类似这样的东西是有效的...

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>

想法?

最佳答案

像这样的简单指令就可以做到这一点:

<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);
    }
  };
});

关于javascript - AngularJS:ngBindHtml 还包含子绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178340/

相关文章:

javascript - 使用 ng-bind-html 的 ng-click 在 Controller 内部不工作

javascript - ng-bind-html 不适用于脚本

javascript - 在使用 ngBindHtml 呈现的 html 片段上调用 ​​js 函数

javascript - 尝试查找关键字并使用 JavaScript 将它们设为斜体

javascript - 如何在纯 JavaScript 中处理事件?

AngularJS - 在 ng-click 上向下滑动菜单

javascript - 我可以清理 AngularJS 模板中的这些 ng-if 语句吗?

javascript - 读取url并输出新的javascript src

javascript - 如何加载隐藏侧边栏的页面

javascript - AngularJS Material 在指令链接函数中使用 $mdDialog