define([ 'knockout', 'text!./Weather.html', 'kojqui/buttonset' ], function(ko, htmlString) { ko.components.register('Environment/Weather/METAR', { require : 'topics/Environment/Weather/METAR' }); ko.components.register('Environment/Weather/Clouds', { require : 'topics/Environment/Weather/CloudLayers' }); ko.components.register('Environment/Weather/Boundary', { require : 'topics/Environment/Weather/Boundary' }); ko.components.register('Environment/Weather/Aloft', { require : 'topics/Environment/Weather/Aloft' }); function ViewModel(params) { var self = this; self.topics = [ 'METAR', 'Clouds', 'Boundary', 'Aloft', ]; self.selectedTopic = ko.observable(); self.selectedComponent = ko.pureComputed(function() { return "Environment/Weather/" + self.selectedTopic(); }); self.selectTopic = function(topic) { self.selectedTopic(topic); } self.selectTopic(self.topics[0]); } ViewModel.prototype.dispose = function() { } // Return component definition return { viewModel : ViewModel, template : htmlString }; });