$ sce.trustAsHtml返回错误:TypeError:html.indexOf不是函数

时间:2015-08-28 08:17:46

标签: angularjs

代码示例:

<p ng-bind-html="htmlcode | unsafe"></p> 

var myApp = angular.module('myApp', ["ngSanitize"]);

myApp.controller('helloController',  ["$scope", "$sce", function ($scope, $sce) {

    $scope.htmlcode="text <b>ng-bind-html</b>";

}
}])
 .filter('unsafe', function($sce) { return $sce.trustAsHtml; });
  

TypeError:html.indexOf不是函数

我包括&#34; santize.js&#34;。

2 个答案:

答案 0 :(得分:1)

您没有包含indexOf NOR您的var html的部分。但无论如何,这是一个常见的问题。 TrustAsHtml返回一个Object而不是一个字符串。因此,您无法使用indexOf。你必须使用第二个函数来获取字符串。

 var htmlText = "<b>Hello</b>";
 var value =  $sce.trustAsHtml(htmlText);
 var yourString = $sce.getTrustedHtml(value);
 var index = yourString.indexOf("e");

答案 1 :(得分:0)

你有一个支架错字。

myApp.controller('helloController',  ["$scope", "$sce", function ($scope, $sce) {

    $scope.htmlcode="text <b>ng-bind-html</b>";

}])
.filter('unsafe', function($sce) { return $sce.trustAsHtml; });

删除额外的括号,应该可以使用。