角度表达错误Ng-Bind-Html

时间:2016-01-15 15:59:44

标签: angularjs

我的ng-bind-html表达式出现问题,这可能源于我不使用花括号,而是使用**@@,因为我使用的是ng-bind-html在laravel模板中有角度,因此,我不能使用花括号。我在var app = angular.module('Mole', ['ngAnimate', 'ui.bootstrap'], function($interpolateProvider) { $interpolateProvider.startSymbol('**'); $interpolateProvider.endSymbol('@@'); }); 中遇到了词法分析器错误。这是我的代码:

我的应用(设置备用开始和结束符号):

 $scope.slides= [{

    id:1,
    image:"",
    content: $sce.trustAsHtml("<div id='chartContainer'></div>")},
    {
    id:2,
    image:"",
    content:""
    },

    {
    id:3,
    image:"",
    content:""
    }],

我的控制器:

<div id="carouselContainer">
    <uib-carousel interval="myInterval" no-wrap="noWrapSlides">
      <uib-slide ng-repeat="slide in slides" active="slide.active" index="slide.id">
        <img ng-src="**slide.img@@" style="margin:auto;">
        <div class="carousel-caption">
          <h4>Slide **slide.id@@</h4>
          <div ng-bind-html="**slide.content@@"></div> <!--Error Here-->
        </div>
      </uib-slide>
    </uib-carousel>
    </div>

我的HTML:

text-align

1 个答案:

答案 0 :(得分:1)

确定!

如果要将受信任的HTML动态删除到DOM中,则必须将SCE函数绑定到作用域,并直接在模板中调用它。这是我从链接的plunker中获取的样本控制器。

app.controller("Controller", function($scope, $sce){
  $scope.trustAsHtml = function(string) {
        return $sce.trustAsHtml(string);
    };
  $scope.slides= {
      id: 1,
      content:'<div id="YourContainer">Binding :)</div>'
    };

});

并在模板中:

<div ng-controller="Controller" id="carouselContainer">
      **slides.id@@
      <div ng-href="**slides.id@@" ng-bind-html="trustAsHtml(slides.content)"></div>
</div>

Here is a plunkr!

您可以检查元素以查看带有标记的YourContainer。