无法在ng-repeat中显示一些特殊字符

时间:2017-04-25 09:37:40

标签: angularjs json angularjs-ng-repeat backslash

我正在尝试在ng-repeat中显示一组对象。

这是对象数组

$scope.test = [
    {
        value1: "app\test\maintenance1",
        value2: "other value1"
    },
    {
        value1: "app\test\maintenance2",
        value2: "other value2"
    }
]

这是html:

<table>
    <tbody>
        <tr ng-repeat="item in test">
            <td>{{item.value1}}</td>
            <td>{{item.value2}}</td>
        </tr>
    </tbody>
<table>

我遇到的问题是$ scope.test.value1中包含的\ t和\不会被渲染。

我不想手动转义字符(使用\\ t和\\),因为我将从REST服务接收此数组。

我搜索了几个小时没有成功(试过$ sce)。

以下是我遇到的问题:https://plnkr.co/edit/AhJaNCOa0saGTSjh9u5H?p=preview

1 个答案:

答案 0 :(得分:1)

您正面临转义序列问题,您需要使用附加的\(反斜杠)转义每个特殊字符,这是您要在视图上打印的每个特殊字符的情况,请尝试此操作(单击运行代码段以查看输出):

angular.module('mainMod', []).controller('mainController', function($scope){

$scope.test = [
    {
        value1: "app\\test\\maintenance1",
        value2: "other value1"
    },
    {
        value1: "app\\test\\maintenance2",
        value2: "other value2"
    }
]

})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js"></script>
<html ng-app="mainMod">

<head> </head>
<body ng-controller="mainController">

<ul>
  <li ng-repeat="item in test">
      {{item.value1}}  {{item.value2}}
  </li>

</ul>

</body>
</html>