0

有人可以帮我把 DATA 值放到新窗口。

我想用 DATA 名称作为超链接制作 td 单元格。如果我单击该 DATA 它应该打开新窗口以显示该值。

演示

JSON数据

{
  "58231e66982cf7857fee2cb5": {
    "_id": {
      "$id": "58231e66982cf7857fee2cb5"
    },
    "RECEIVETIME": {
      "sec": 1478696550,
      "usec": 529000
    },
    "OPERATION": "Operation 1",
    "DATA" : "kdsjfkdjfkdjfkjdjfjdsfjdsilkjdkfljdsklfjkdlsjfkldsjflkdsjf",
    "ACCOUNTNUMBER": "account",
    "STATUS": "SUCCESS",
    "MESSAGELOGCREATIONDATE": {
      "sec": 1478696550,
      "usec": 537000
    }
  },
  "58231e681b58b970137b56aa": {
    "_id": {
      "$id": "58231e681b58b970137b56aa"
    },
    "RECEIVETIME": {
      "sec": 1478696552,
      "usec": 961000
    },
    "OPERATION": "Operation 2",
    "DATA" : "dfdfdfkoooooooooooookdkfdkfodkfldkffdfd",
    "ACCOUNTNUMBER": "account",
    "STATUS": "FAIL",
    "MESSAGELOGCREATIONDATE": {
      "sec": 1478696552,
      "usec": 961000
    }
  }
}

目前我正在使用{{list.DATA}}显示单元格中的数据,但我想创建超链接,一旦用户单击该链接,它应该打开新窗口来显示数据。因为我的 DATA 值大约是 1000 行。有人可以帮助我解决这个问题。

有没有办法我可以解码 UTF-8 中的数据值,因为数据值是用 UTF-8 编码的

提前致谢。

<tr class="features" ng-repeat="list in opMessageLogs">
<td>{{list._id.$id}}</td>
<td>{{list.OPERATION}}</td>
<td>{{list.STATUS}}</td>
<td>{{list.DATA}}</td>
</tr>
4

2 回答 2

1

对于新标签,您需要创建一个链接,但链接 (url) 长度有限制,2000 个字符 Link here

您可以做的是创建一个新的 Angular 路由,它将获取参数_id,然后您可以通过http调用或从service.

用于解码/编码 utf-8

function encode_utf8(s) {
    return unescape(encodeURIComponent(s));
}

function decode_utf8(s) {
  return decodeURIComponent(escape(s));
}

希望这可以帮助..

于 2016-11-11T04:07:15.340 回答
1

为此,您需要执行以下步骤:

  1. 创建一个带有参数的状态,即

    $stateProvider.state('openTab', { 'url' : '/link/:id', 'templateUrl': 'abc.html' });

  2. 在 html 中以这种方式使用它。

    <td> <a ui-sref="openTab({'id': list.DATA})" target="_blank">Click Here</a></td>

于 2016-11-11T04:59:56.077 回答