У меня есть объект с структурой данных, как показано ниже,
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>
То, что я пытаюсь увидеть в таблице, заключается в том, что, поскольку "user1" и "user2" имеют одинаковые имена, я хочу, чтобы однократно печаталось с помощью строки rows 2., что-то возможно?
С этими данными таблица будет выглядеть так,
что я пытаюсь получить,
Я не вижу простой способ использовать rowspan. Но вы можете использовать фильтр groupBy, предоставляемый angular.filter, для этого:
<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>
Вот демон, чтобы продемонстрировать.
<table> <tr ng-repeat='(key, value) in data | groupBy: "name"'> <td ng-Click="someFunction(item.Company)">{{key}}</td> <td> <table> <tr ng-repeat='item in value'> <td>{{item.Company}}</td> </tr> </table> </td> </tr> </table>
Вы видите это, потому что вы, вероятно, ставите "имя" пользователя в переменной 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"
};