1

コメント テキスト ボックスがあり、ngSanitize/$sce を使用して a[href] を安全な html として許可したいだけです。だから私はこれを試しています:

<span contact-highlight hightlight-value="showedText" ng-bind-html="showedText"></span>

そして、私の contactHiglight ディレクティブの中に私はこれを持っています:

contentObjectApp.directive('contactHighlight', function ($sce) {
    return {
        restrict: 'A',
        scope: { hightlightValue: '=' },
        link: function ($scope, $element, $attrs) {
            $scope.hightlightValue = "<h2> testing" + $sce.trustAsHtml('<a href="#">render me please</a>') + " </h2>";
        }
     };
});

「レンダリングしてください」のみがhrefリンクになることを許可することを期待していますが、常にレンダリングされることも期待しています。私は何が欠けていますか?これを行う簡単な方法はありますか?

4

1 に答える 1

2

Angular 1.3.7 のドキュメント ( https://docs.angularjs.org/api/ng/service/ $sce ) によると、リンクだけを渡したい場合は、 $sce.trustAs($sce.URL, value_to_parse)。

フィルターを使用することをお勧めします。

angular.module('App', [])
.filter('asHtml', function($sce) {
  return function(input) {
    return $sce.trustAs($sce.URL, input);
  };
})

次に、ビューで次のように使用できます。

<span ng-bind-html="value_to_parse | asHtml"> </span>
于 2014-12-10T13:24:59.117 に答える