Update: If your nested list is depend on main list this is your solution, otherwise @rp-niemeyer solution is the best.
If I got it right, lets say you have JSON data like this:
{
appId: 1,
appName: 'my app 1',
modules:[
{module1:1, moduleName: 'module 1'}, {module1:2, moduleName: 'module 2'}]
},
{
appId: 2,
appName: 'my app2',
modules:[
{module1:3, moduleName: 'module 3'}, {module1:4, moduleName: 'module 4'}]
}
This will be your viewModel:
function myViewModel(){
var self = this;
self.appList = ko.observableArray(data);
self.moduleList = ko.observableArray([]);
// Set selectedApp in order to fill modulesList
self.selectedApp = ko.observable();
self.selectedApp.subscribe(function(v){
// updates module list whenever selected app gets value.
moduleList(v.modules);
});
}
I didn't test it but I'm sure you've got the idea.