这些是我的自定义指令,用于读取更多和to_trusted(用于转换为html)。
psp.directive('hmRead', function () {
return {
restrict:'AE',
scope:{
hmtext : '@',
hmlimit : '@',
hmfulltext:'@',
hmMoreText:'@',
hmLessText:'@',
hmMoreClass:'@',
hmLessClass:'@'
},
templateUrl: 'partials/common/read-more.html',
controller : function($scope){
$scope.toggleValue=function(){
if($scope.hmfulltext == true)
$scope.hmfulltext=false;
else if($scope.hmfulltext == false)
$scope.hmfulltext=true;
else
$scope.hmfulltext=true;
}
}
};
});
psp.filter('to_trusted', ['$sce', function($sce){
return function(text) {
return $sce.trustAsHtml(text);
};
}]);
用html调用。
<hm-read hmtext="{{data.content}}" ng-bind-html="data.content| to_trusted" hmlimit="100" hm-more-text="read more" hm-less-text="read less"></hm-read>
如果iI删除ng-bind-html
,那么阅读更多内容工作正常,但ng-bind-html
指令 readmore 指令无效。
答案 0 :(得分:0)
您的指令的逻辑作为 Read-More 指令有点不清楚,尤其是在指令中使用 templateUrl , hmfulltext 参数和 ng-bind-html 。
通过伪指令模板中伪指令模板使用伪指令的方式:
template: '<p>template that is set in your directive</p>',
和伪造的内容范围变量如下:
$scope.data={};
$scope.data.content = '<p>template that passed into directive</p>';
通过该伪造的模板,您的指令可以正常工作
它表明问题出在'partials / common / read-more.html'模板或 data.content 范围变量中。您可以在这些地方查找错误。