ng-bind-html不适用于输入标记

Nee*_*eel 14 javascript angularjs ng-bind-html ng-bind ngsanitize

我试图在范围变量中存储HTML,然后在模板视图中使用它.当我正在阅读如何以棱角分明的方式做这件事时,我遇到了ng-bind-html.在那里我注意到,当我用,等等绑定html标签时<a>,<strong>它的工作原理.但我无法为其添加<input>标签.

这意味着,这有效:

$scope.myHtml = '<strong>This is <a hreaf="#">Something</a></strong>';
Run Code Online (Sandbox Code Playgroud)

模板:

<p ng-bind-html="myHtml"> </p>
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

$scope.myHtml = '<input type="text" />';
Run Code Online (Sandbox Code Playgroud)

模板:

<p ng-bind-html="myHtml"> </p>
Run Code Online (Sandbox Code Playgroud)

以上仅是用于演示目的的简化示例.我的问题是:

1)标签不适用于ng-bind-html指令吗?

2)如果没有,我如何html绑定输入标签,以便我可以将其插入视图?

Poy*_*maz 30

你得到$ sce:不安全的错误......

这意味着你应该使用ng-bind-html-unsafe但更新版本的angularjs不再包含这个指令所以你应该sce.trustAsHtml()像这样使用$ ...

$scope.trustedInputHtml = $sce.trustAsHtml('<input type="text" />');
Run Code Online (Sandbox Code Playgroud)

但是这样你就无法将范围变量绑定到你的html,所以最好的办法就是编写一个可以用ng-bind-html-unsafe...... 替换的指令.

这里有$ sce和指令示例的PLUNKER ......