Angularjs 为什么将我的trustAsHtml文本限制为140个字符没有效果?

Angularjs 为什么将我的trustAsHtml文本限制为140个字符没有效果?,angularjs,Angularjs,我试图将我的受信任文本限制为140个字符,但所有文本都显示出来了。知道为什么吗?limito:140无效 这是我的密码: for (var i = 0; i < data.results.length; i++) { data.results[i].Description = $sce.trustAsHtml(data.results[i].Description); $scope.vehicles.push(data.results[i]); } <div cl

我试图将我的受信任文本限制为140个字符,但所有文本都显示出来了。知道为什么吗?
limito:140
无效

这是我的密码:

for (var i = 0; i < data.results.length; i++) {
    data.results[i].Description = $sce.trustAsHtml(data.results[i].Description);
    $scope.vehicles.push(data.results[i]);
}


<div class="child" ng-repeat="vehicle in vehicles">
          <div data-ng-bind-html="vehicle.Description | limitTo:140"></div>
</div>
for(var i=0;i
这是因为Limito filter需要限制
源数组、字符串或数字。
但您提供给筛选器的是可信值,它是稍后在绑定期间展开的对象。您可以使用展开受信任值的
$scope.vehicle.Description.valueOf()
获取该值

因此,您可以:-

 <div data-ng-bind-html="vehicle.Description.valueOf() | limitTo:140"></div>
注意:-如果您使用的是
ng bind html
,则无需明确执行
$sce.trustAsHtml
,因为指令本身将在内部处理它,因此您也可以删除代码:-

data.results[i].Description = $sce.trustAsHtml(data.results[i].Description);
并直接使用它,使
Description
不再是
wrappedTrustedValue
对象,而是字符串本身,它将被限制,然后解析为html:-

<div data-ng-bind-html="vehicle.Description | limitTo:140"></div>


嗨,你的答案看起来很有道理,但我无法让它工作。两种方法我都试过了。第一个没有限制文本(没有显示文本),第二个给了我一个
TypeError:dbg是未定义的
错误。我已经尝试过了,效果非常好。除非您展示演示该问题,否则很难提供帮助。
TypeError:dbg未定义
?它是从哪里来的。它必须是从您的代码只。。。还请记住,您需要包括ngSanitize以使ng绑定html正常工作,希望您已经这样做了。。您甚至不需要使用$sce.trustAs,就像您使用valueOf()一样。非常感谢您的演示和其他帮助。我已经让它工作了,不包括ngSanitize。是的,我也删除了那个部分-全部工作:)
<div data-ng-bind-html="vehicle.Description | limitTo:140"></div>