Voglio usare qualcosa di simile al costrutto foreach di Knockout per iterare sulle proprietà di un oggetto. Ecco quello che sto cercando di creare ...Come usare il knockout per iterare su un oggetto (non su un array)
risultato desiderato
<table>
<tr>
<td>Name 1</td>
<td>8/5/2012</td>
</tr>
<tr>
<td>Name 2</td>
<td>2/8/2013</td>
</tr>
</table>
Tuttavia, il mio modello simile a questa ...
JS
function DataModel(){
this.data = ko.observableArray([{
entityId: 1,
props: {
name: 'Name 1',
lastLogin: '8/5/2012'
}
},
{
entityId: 2,
props: {
name: 'Name 2',
lastLogin: '2/8/2013'
}
}]);
}
var dataModel = new DataModel();
ko.applyBindings(dataModel);
Ogni riga ha un entityId e oggetti di scena che è un oggetto stesso. Questo modello non funziona, ma come dovrei cambiarlo per generare la tabella desiderata sopra?
EDIT: Il props
in questo esempio sono name
e lastLogin
, ma ho bisogno di una soluzione che è agnostica a ciò che è contenuto all'interno props
.
Ho questo FIDDLE andando pure.
HTML
<div data-bind="template: { name: 'template', data: $data }"></div>
<script type="text/html" id="template">
<table>
<tr data-bind="foreach: data()">
<td data-bind="text: entityId"></td>
</tr>
</table>
</script>
è la quantità di oggetti di scena sempre 2 o possono differire da ogni altri? –