Angularjs-读取更多自定义指令不适用于ng-bind-html指令

时间:2015-05-27 08:30:32

标签: javascript html angularjs

这些是我的自定义指令,用于读取更多和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 指令无效。

1 个答案:

答案 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>';

通过该伪造的模板,您的指令可以正常工作

Online Execution

它表明问题出在'partials / common / read-more.html'模板或 data.content 范围变量中。您可以在这些地方查找错误。