1

我在使用 angularjs 的 ng-bind-html 选项从文本中删除 html 代码时遇到问题。

我的文字原本是这样的:

'<p><!--[if gte mso 9]><xml> <w:WordDocument>  <w:View>Normal</w:View>  <w:Zoom>0</w:Zoom>  <w:HyphenationZone>14</w:HyphenationZone>  <w:PunctuationKerning/>  <w:ValidateAgainstSchemas/>  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>  <w:Compatibility>   <w:BreakWrappedTables/>   <w:SnapToGridInCell/>   <w:WrapTextWithPunct/>   <w:UseAsianBreakRules/>   <w:DontGrowAutofit/>  </w:Compatibility>  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument></xml><![endif]--></p><p><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles></xml><![endif]--><!--[if gte mso 10]><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabella normale"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;}</style><![endif]--> <span mso-fareast-language:="" new="" style="font-size:10.0pt;line-height:115%;font-family:FuturaStd-Book;mso-fareast-font-family:" times="">'il senso del progetto riguarda soprattutto la costruzione di se stessi’. il progetto è per ag fronzoni il punto di partenza e di arrivo della sua ricerca, non è solo la realizzazione di un manufatto, ma è un processo di trasformazione dell’ambiente umano e dei suoi strumenti che può condizionare l’intera vita di un individuo.</span></p>'

但这是结果:

<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>14</w:HyphenationZone> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument></xml><![endif]--></p><p><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles></xml><![endif]--><!--[if gte mso 10]><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabella normale"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;}</style><![endif]--> <span mso-fareast-language:="" new="" style="font-size:10.0pt;line-height:115%;font-family:FuturaStd-Book;mso-fareast-font-family:" times="">'il senso del progetto riguarda soprattutto la costruzione di se stessi’. il progetto è per ag fronzoni il punto di partenza e di arrivo della sua ricerca, non è solo la realizzazione di un manufatto, ma è un processo di trasformazione dell’ambiente umano e dei suoi strumenti che può condizionare l’intera vita di un individuo.</span></p>

这是一个代表我的问题的 jsfiddle:jsfiddle

我能做些什么?

4

2 回答 2

0

NgSanitize 无法将您的字符串转换为 html。您可以使用 jQuery 来实现这一点,例如:

return $('<div/>').html(text).text()

工作小提琴

于 2015-01-28T16:12:10.460 回答
0

需要绑定为不安全的html,如下:

<div ng-controller="MyCtrl">
  Hello, {{name}}!
  <div ng-bind-html-unsafe="my_html | to_trusted"></div>
</div>
于 2015-01-28T15:59:56.723 回答