То, что я пытаюсь сделать, это повторить три уровня.вложенная таблица с использованием ng-repeat
Демо: http://plnkr.co/edit/qXLcPHXDlOKZYI5jnCIp?p=preview
<table>
<thead>
<tr>
<td>Block</td>
<td>Column</td>
<td>Unit</td>
<td>Action</td>
</tr>
</thead>
<tbody ng-repeat="block in building.ownBlock">
<tr ng-repeat="column in block.ownColumn">
<td>{{block.name}}</td>
<td>{{column.number}}</td>
<td>{{unit.name}} - ? empty</td>
<td><button ng-click="edit(unit)">Edit</button></td>
</tr>
</tbody>
</table>
, но я не в состоянии сделать это.
Коллекция
$scope.building =
{
id: 1,
name: 'first',
ownBlock: [
{
id: 1,
name: 'Block 1',
ownColumn: [
{
id: 1,
number: 'Column 1-1',
ownUnit: [
{
id: 1,
number: 'Unit 1-1-1'
},
{
id: 2,
number: 'Unit 1-1-2'
}
]
},
{
id: 2,
number: 'Column 1-2',
ownUnit: [
{
id: 3,
number: 'Unit 1-2-3'
},
{
id: 4,
number: 'Unit 1-2-4'
}
]
}
]
},
{
id: 2,
name: 'Block 2',
ownColumn: [
{
id: 3,
number: 'Column 2-3',
ownUnit: [
{
id: 5,
number: 'Unit 2-3-5'
},
{
id: 6,
number: 'Unit 2-3-6'
}
]
},
{
id: 4,
number: 'Column 2-4',
ownUnit: [
{
id: 7,
number: 'Unit 2-4-7'
},
{
id: 8,
number: 'Unit 2-4-8'
}
]
}
]
}
]
};
Использование KnockoutJS я мог бы использовать виртуальные повторители например.
<!-- ko foreach: items -->
<li data-bind="text: $data"></li>
<!-- /ko -->
Я закодировал директиву, но «ng-click =» edit (unit) «« просто не работает. Может быть, потому что я использую element.replaceWith (html); для замены директивы HTML.
Любая помощь очень ценится. Спасибо
Что такое 'unit'? – tymeJV
@tymeJV это дитя ownColumn => ownUnit. –
Проблема в том, что вы пытаетесь сделать 3D-дисплей в таблице 2d. Поскольку ownUnit - это еще один массив, вы могли бы что-то вроде {{column.ownUnit [0] .number}}, но вы не можете отображать все единицы, не делая что-то другое. –