0

我正在尝试使用 hashids 插件ticket_id在 for 循环中进行散列。

for (var i = 0; i < result.length; i++) {
    var hashids = new Hashids("", 5);
    var id = hashids.encode(result[i].ticket_id);
    console.log(hashids);
    [...]

    html += '<tr class="ticketClick" data-url="' + baseURL + id>' [...]
}

表格的 HTML 是根据resultajax 调用传递的动态生成的。单击表行时,我会重定向到 data-url 属性中的 url。

问题是 hashids 没有运行,因此id没有附加到 url。

产生的控制台日志hashids

Hashids {version: "1.0.2", minAlphabetLength: 16, sepDiv: 3.5, guardDiv: 12, errorAlphabetLength: "error: alphabet must contain at least X unique characters"…}

我已经搜索了错误并没有找到任何东西......

我觉得奇怪的是,如果我将一个整数直接传递给 hashids 方法,例如:

var id = hashids.encode(20);

编码工作并返回预期的哈希值。

console.logresult[i].ticket_id返回预期的整数,因此 for 循环可以正常工作。new Hashids()在循环之外声明for似乎没有什么不同。所以我不确定这里出了什么问题。有什么建议么?

4

1 回答 1

0

该问题是由于 Ajax 函数以 JSON 格式提取数据引起的。

解决方案

将值解析为整数: parseId(result[i].ticket_id)

于 2015-08-04T14:40:42.407 回答