将 html 标记从控制器传递给 angularjs 变量



我有这个验证,每次用户输入错误的电子邮件时,我都会尝试进行这种验证。我正在通过我的 html 中的变量来处理它,如下所示:

<p class="error"  ng-show="!!user.errorText || form.$submitted">
{{user.errorText}}
</p>

到目前为止,一切都很好,因为我正在用控制器中的文本值替换错误文本,如下所示:

$scope.user.errorText = "Email is incorrect"

现在,我实际上想插入一个像<a>这样的 html 标签。例如:

$scope.user.errorText = "Email is incorrect . <a href='#'>View Examples</a>"

但是可用的{{user.errorText}}总是将其重新命名为文本。有关如何呈现标签和文本的任何帮助都会有所帮助。此外,我无法替换 html 中的{{user.errorText}},因为它已经用于 n 次验证,并且使用 html 标签的情况很少见。

您可以使用ng-bind-html指令来绑定 html 文本(它也适用于简单文本(:

<p ng-bind-html="user.errorText"></p>

https://docs.angularjs.org/api/ng/directive/ngBindHtml

如果应用程序中未包含angular-sanitize.js,则将显示以下错误:

angular.min.js:1 错误: [$sce:不安全] 尝试在安全上下文中使用不安全的值。

在这种情况下,$sce服务需要像这样使用:

$scope.user.errorText = $sce.trustAsHtml("Email is incorrect . <a href='#'>View Examples</a>");

最新更新