javascript - 将 ID 替换为名称

标签 javascript jquery angularjs

我有什么

我有一些 json 格式的数据,如下所示:

var data = [{id: 1, name="AB", designation=1},
            {id: 2, name="CD", boss= 1, designation=2},
            {id: 3, name="EF", boss= 1, designation=2},
            {id: 4, name="GH", boss= 1, designation=2},
            {id: 5, name="IJ", boss= 2, designation=3},
            {id: 6, name="KL", boss= 3, designation=3},
            {id: 7, name="MN", boss= 3, designation=3},
            {id: 8, name="OP", boss= 7, designation=4},
            {id: 9, name="QR", boss= 3, designation=3},
            {id: 10, name="ST", boss= 1, designation=2}];

var designations = [{id: 1, name: "Principle"},
                    {id: 2, name: "HOD"},
                    {id: 3, name: "Teacher"},
                    {id: 4, name: "Student"}];

在上面的数据中,请注意 boss 字段引用同一个数组,而 designation 引用不同的数组。

我想要什么

我想在表格中显示这些数据:

id | name | boss | designation
---+------+------+------------
 1 | AB   | SUP  | Principle
 2 | CD   | AB   | HOD
 3 | EF   | AB   | HOD
 4 | GH   | AB   | HOD
 5 | IJ   | CD   | Teacher
 6 | KL   | EF   | Teacher
 7 | MN   | EF   | Teacher
 8 | OP   | MN   | Student
 9 | QR   | EF   | Teacher
10 | ST   | AB   | HOD

我有什么计划

现在我正在使用 javascript 显示上述表格。现在我计划使用 Angular.js 学习并实现相同的示例。 AngularJS 有内置的东西可以做这样的事情吗?如果没有,请告诉我如何使用 javascript 做到这一点?

最佳答案

您可以使用data.map(...)以您需要在表格中显示的格式进行投影。

例如,您可以执行以下操作:

$scope.tableContent = data.map(function(d) { return new {
   id: d.id, 
   name: d.name, 
   boss: data.filter(function(x) {return x.id == d.boss; })[0],
   designation: designations.filter(function(des) { des.id == d.designation; })[0];
});

或者类似的东西。然后,您只需将 tableContent 绑定(bind)到 ng-repeat 并按照您想要的 Angular 渲染 HTML。

类似这样的事情:

<table>
   <tr ng-repeat='row on tableContent'>
       <td>{{row.id}}</td>
       <td>{{row.name}}</td>
       <td>{{row.boss.name}}</td>
       <td>{{row.designation.name}}</td>
   </tr>
</table>

关于javascript - 将 ID 替换为名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38746512/

相关文章:

JavaScript:使用自动热键登录网站

javascript - 将鼠标移动和点击坐标按照它们发生的顺序组合成一个 var 字符串以获取 url?

javascript - 以一个函数定位多个元素

javascript - AngularJS UI-Router 多页面

javascript - 为什么 $render 从来没有接到电话

javascript - 使用 React 中的 Ant Design 在选项卡中切换选项卡的按钮?

javascript - jQuery 无法在 jsFiddle 之外工作

javascript - 在移动设备上删除 'sticky navigation'

javascript - 单击模式外部时显示确认弹出窗口 - bootstrap

javascript - 在 Meteor 发布中通过 id 链接用户