嵌套的角度渲染标记

时间:2016-01-20 18:11:14

标签: angularjs

我得到像这样的JSON

private void Changed(int a)
{
    Thread.Sleep(350);
    pbPlane1.Location = new Point(525-(25*a), 235);
    pbMap1.Refresh();      // refresh the background picturebox
}
从服务器

我最终迭代描述对象并用两列填充表行:一列用于键,一列用于值。

我尝试使用{ "lots of":"keys" "description" : { "key":"Some sample key", "value":"This is the markup&trade;" } } 标记<td>以及将ng-bind-html注入我的控制器并使用$sce,但到目前为止字符串始终显示为JSON。并非每个值都是HTML,但我可以根据密钥轻松检测HTML是否可能。当我在trustAsHtml上放入指令时,如果没有HTML,它就没有显示任何内容。我有兴趣使用可以在值中使用HTML但不需要它的东西,所以我可以显示

HTML片段

td

2 个答案:

答案 0 :(得分:1)

Angular在设计时考虑了安全性,并且会阻止您尽可能地从原始字符串显示HTML - 以防止各种注入攻击。

以下是您的问题的解决方法:AngularJS: Insert HTML from a string。通常,您应该使用ng-bind-html ng-bind def rep(): goes+=1 firstnum = int(raw_input("first number?") #I am guessing you're using python 2.7 secondnum = int(raw_input("second number?") operation = raw_input("operation") if operation=="+": sum = firstnum+secondnum return sum elif operation=="-": diff = firstnum-secondnum return diff elif operation=="*": product = firstnum*secondnum return product elif operation=="/": quo = float(firstnum)/float(secondnum) #to make sure there's no rounding return quo else: raise ValueError("Improper entry!") (花括号使用)。

答案 1 :(得分:1)

我在这里创造了一个快速的小提琴: https://jsfiddle.net/frishi/mvw97s3q/6/

我使用angular-sanitize,我不确定你是否提到在模块依赖列表中注入。无论哪种方式,该示例仅使用ng-bind-html

相关文档页面:https://docs.angularjs.org/api/ng/directive/ngBindHtml

它通过在要显示HTML字符串的元素上使用指令ng-bind-html来工作。您可以这样使用它:

<p ng-bind-html="data.firstName"></p>

假设data.firstName = "<strong>FeeFee</strong>"或类似的东西。

我还想补充说,由于合法的安全问题,Angular本身不允许这样做。这和允许任意HTML呈现的事实可能并不总能产生理想的结果。由于允许传递的某些HTML,您的页面布局很可能会中断。