【问题标题】:Pass html tag to angularjs variable from controller [duplicate]将html标签从控制器传递给angularjs变量[重复]
【发布时间】:2020-05-14 06:18:51
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: javascript html angularjs


    【解决方案1】:

    您可以使用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:unsafe] 尝试在安全上下文中使用不安全值。

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多