javascript - 如何在angularjs中进行表格格式化?

标签 javascript jquery angularjs

我在 angularjs 中动态生成表数据和表列。我的 table 是

Name    Hobby
XXXX    Music
XXXX    Cricket
XXXX    Books
YYYY    Tennis
YYYY    Books
YYYY    Drawing

但我希望我的表格像这样显示:

Name    Hobby

XXXX
        Music
        Cricket
        Books
YYYY
        Tennis
        Books
        Drawing

我使用以下代码生成表格:

        <tr>
            <th ng-repeat="th in keys">{{th}}</th>
        </tr>
        <tr ng-repeat="x in data ">
            <td ng-repeat="th in keys">
                {{ x[th]}}
            </td>
         </tr>

我的 json 是这样的

[{"Name:"XXXX", "Hobby":"Music"},
{"Name:"XXXX", "Hobby":"Cricket"},
{"Name:"XXXX", "Hobby":"Books"},
{"Name:"YYYY", "Hobby":"Tennis"},
{"Name:"YYYY", "Hobby":"Books"},
{"Name:"YYYY", "Hobby":"Drawing"}]

我不能用类似的

<ng-repeat="(key, value) in players | groupBy: 'team'">

因为我的表头是动态创建的

我如何在 angularjs 中做到这一点?

最佳答案

这是简单的 javascript 解决方案:

var array = [{"Name":"XXXX", "Hobby":"Music"},
{"Name":"XXXX", "Hobby":"Cricket"},
{"Name":"XXXX", "Hobby":"Books"},
{"Name":"YYYY", "Hobby":"Tennis"},
{"Name":"YYYY", "Hobby":"Books"},
{"Name":"YYYY", "Hobby":"Drawing"}];

 var distinctNames = []

 for (i = 0; i < array.length; i++) { 
   if(distinctNames.indexOf(array[i].Name) === -1){
      distinctNames.push(array[i].Name);
   }
   else{
       array[i].Name = "";
   }
 }

DEMO

在这个过滤器之后你可以在你的表中渲染数组

关于javascript - 如何在angularjs中进行表格格式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30506123/

相关文章:

AngularJS-过滤后的ng-repeat中对象的原始索引

javascript - AngularJS ng-view、ng-click 和 routerProvider 不能一起工作

javascript - 如何在 TinyMce 的 ko.bindingHandler 中传递事件

javascript - jquery 对象属性值平均值

javascript - AngularJS - 在两个容器内滚动 -anchorScroll

jquery - 使用 jquery 选择器更改 CSS 的不透明度

javascript - Bootstrap 轮播 jQuery 错误

javascript - 需要正则表达式帮助使用 Javascript 解析 mediawiki 模板

javascript - 根据更改的输入更新 HTML 输出中的值

javascript - 为什么预计算 sin(x) *比在 Javascript 中使用 Math.sin() *慢*?