Angularjs ng-repeat 对象 - 重复值

Angularjs ng-repeat object - duplicate values

我有一个数据结构如下的对象,

data = {};

data[user1] = {
 name:  "apple",
 Company: "001"
};
data[user2] = {
 name:  "apple",
 Company: "002"
};
data[user3] = {
 name:  "orange",
 Company: "003"
};

每当添加新用户时,对象都会更新

我正在使用 ng-repeat 迭代此对象以表格格式呈现数据,

<table>
 <thead>
   <tr>
    <td>Name</td>
    <td>Company</td>
   </tr>
 </thead>
 <tbody>
   <tr ng-repeat="(key, value) in data">
     <td>{{$parent.data[key].name}}</td>
     <td>{{$parent.data[key].Company}}</td>
   </tr>
 </tbody>
</table>

我想在 table 中看到的是,因为 "user1" 和 "user2" 具有相同的名称,我希望它以 2 的行跨度打印一次。是有可能吗?

有了这些数据,table 看起来像这样,

我想得到的是,

您之所以看到,是因为您可能将用户的 "name" 放入 user1 变量中。如果我错了请指正

使用这样的东西

data = {};

data[user1+""+data.length()] = {
 name:  "apple",
 Company: "001"
};

或使用增量变量

var i = 0;
data = {};

data[user1+""+i] = {
 name:  "apple",
 Company: "001"
}; 
i++;

或完全删除 user1

var i = 0;
data = {};

data[i] = {
 name:  "apple",
 Company: "001"
};
i++
data[i] = {
 name:  "apple",
 Company: "002"
};

我没有看到使用 rowspan 的简单方法。但是你可以使用 angular.filter 提供的 groupBy 过滤器来做到这一点:

  <table>
    <tr ng-repeat='(key, value) in data | groupBy: "name"'>
      <td>{{key}}</td>
      <td>
        <table>
          <tr ng-repeat='item in value'>
            <td>{{item.Company}}</td>
          </tr>
        </table>
      </td>
    </tr>
  </table>

这里有一个plunk来演示。