代码之家  ›  专栏  ›  技术社区  ›  Daniel Ellison

AngularJS-在html模板中使用插值

  •  0
  • Daniel Ellison  · 技术社区  · 6 年前

    控制器:

    $scope.example_text_here = "Hello World!"
    $scope.HTML_template = "<p><strong> Example: </strong> {{ example_text_here }}</p>"
    

    HTML格式:

    <div ng-bind-html="HTML_template"></div>
    

    输出

    {{示例文本}}

    我期待的是:

    你好,世界!

    有人知道如何做到这一点吗?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Raphael Willian da Costa    6 年前

    您应该使用$interpolate模块,然后注入当前作用域,甚至$compile。查看更多 https://docs.angularjs.org/api/ng/service/ $插值

    $interpolate($scope.HTML_template)($scope)
    
        2
  •  0
  •   Sandeep    6 年前

    试试这个

    $scope.HTML_template = "<p><strong> Example: 
     </strong>"+$scope.example_text_here+"</p>";
    
        3
  •  0
  •   SuperStar518 JamesE    6 年前

    我想你应该用 $sce 服务 棱角

    控制器:

    angular.module('app', [...])
    
    .controller('myCtrl', function($scope, $sce) {
      ...
      $scope.trustAsHtml = function(params) {
        return $sce.trustAsHtml(params);
      };
      ...
      $scope.example_text_here = "Hello World!";
      $scope.HTML_template = "<p><strong> Example: </strong> {{ example_text_here }}</p>";
      ...
    });
    

    标记:

    <div ng-bind-html="trustAsHtml(HTML_template)"></div>
    

    现在希望你能 预期