2016-11-19 47 views
0

我采用了棱角分明的ng-bind-html这个文本绑定到页面:

Ale 
skoro nikdy sa nepozeráme na priemerné produkty s údivom, že nie sú skvelé. 
Priemerné služby a produkty robia to, čo sa od nich očakáva. Nastavili ale 
latku tak nízko, že skoro ani nemá cenu urobiť kvôli ním pár krokov navyše, aby 
ste si ich kúpili.<div><br></div><div><br></div><div>Prečo 
nie je každé jedlo v reštaurácii skvelou kúpou za svoju cenu? Vyzerá to, ako by 
sme ochotne brali všetko viac menej zlé za prijateľné, s výnimkou prípadov, keď 
daný produkt, služba alebo firma nestoja úplne za nič.</div><div><br></div><div><br></div><div>Vyzvite priemernosť vo 
vašej firme na súboj.&nbsp;Pretože presne takýto pohľad priemernosti na vás, môžu 
mať aj vaši zákazníci.</div> 

所以你可以看到它包含编码字符各种HTML标记。 ng-data-bind对此进行了非常正确的处理,以便文本在页面上可读。

然而,当我使用$sanitize这个文本到HTML字符过滤出来,我得到这个:

Ale&#10;skoro nikdy sa nepozer&#225;me na priemern&#233; produkty s &#250;divom, &#382;e nie s&#250; skvel&#233;.&#10;Priemern&#233; slu&#382;by a produkty robia to, &#269;o sa od nich o&#269;ak&#225;va. Nastavili ale&#10;latku tak n&#237;zko, &#382;e skoro ani nem&#225; cenu urobi&#357; kv&#244;li n&#237;m p&#225;r krokov navy&#353;e, aby&#10;ste si ich k&#250;pili.<div><br></div><div><br></div><div>Pre&#269;o&#10;nie je ka&#382;d&#233; jedlo v re&#353;taur&#225;cii skvelou k&#250;pou za svoju cenu? Vyzer&#225; to, ako by&#10;sme ochotne brali v&#353;etko viac menej zl&#233; za prijate&#318;n&#233;, s v&#253;nimkou pr&#237;padov, ke&#271;&#10;dan&#253; produkt, slu&#382;ba alebo firma nestoja &#250;plne za ni&#269;.</div><div><br></div><div><br></div><div>Vyzvite priemernos&#357; vo&#10;va&#353;ej firme na s&#250;boj.&#160;Preto&#382;e presne tak&#253;to poh&#318;ad priemernosti na v&#225;s, m&#244;&#382;u&#10;ma&#357; aj va&#353;i z&#225;kazn&#237;ci.</div>

所以我怎么能模仿ng-bind-html我的控制器内,以清除文本,并用它进一步?

编辑:对我来说更加清楚,我不需要将这个文本绑定到视图上。这已经起作用了。我需要使用控制器逻辑中的文本,因此我只需要清理它并进一步使用它。

+0

你必须使用'$ sce.trustAsHtml()'。 –

+0

告诉我如何在控制器中使用它,以便在变量中有清晰的文本。 – greengold

+0

阅读'ngBindHtml'和'$ sce'文档 – charlietfl

回答

0

$ sce.trustAsHtml()应该被使用。

HTML:

<td ng-bind-html="mData.data | unsafe"></td> 

JS:

mOverview.controller('appController', function ($scope, $sce) { 
    $scope.mData = [ 
    { 
     'data': 'your data' 
    } 
    ]; 
}); 

mOverview.filter('unsafeFilter', function($sce) { 
    return function(val) { 
     return $sce.trustAsHtml(val); 
    }; 
}); 
+0

我不能再强调我需要过滤掉不需要的字符并在控制器中进一步传递文本!我不希望文字显示在页面上。 更清晰我需要somthing像 var content = $ somefilter(tip.content); ..在代码中使用内容变量 – greengold