Angularjs ng-bind与正则表达式无关?

时间:2017-07-13 15:31:20

标签: html css angularjs angularjs-directive angularjs-scope

基本上我尝试使用Angularjs |设置ng-bind样式,但是它不应用样式将span标记添加到字符串中。使用AngularJs来实现这项任务的正确方法是什么?

main.html中

<li ng-repeat="message in event.data track by $index">
                        <span  class="messageMargin" ng-bind="messageTest">{{message.value}}</span>
 </li>

ctrl.js

var data = "[2017-07-12T12:38:36-04:00]|zds455|info|<n/a>|[infra.actorRouter] Processing message from topic UEQ: 216014da-b849-4a1d-8232-3629e58338ce { partition: 0, offset: 12081530 }" 

$scope.messageTest = data.replace(/\|/g, '<span class="pipe">|</span>');

的main.css

.pipe {
    background: red;
    width: 1em;
    color: white;
    display: inline-block;
    text-align: center;
}

1 个答案:

答案 0 :(得分:0)

尝试使用ng-bind-html,但请记住先将$sanitize添加到模块依赖项中。

当您使用ng-bind angular忽略所有html标记时。请记住,使用ng-bind-html有时可能不安全(例如,如果用户可以访问该变量,则可以注入恶意代码)

正则表达式与此无关。您只是尝试插入经典ng-bind中不允许的html标记。