我的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
答案 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>
您可以检查元素以查看带有标记的YourContainer。