Knockoutjs.com - Hello World Example
http://knockoutjs.com/examples/helloWorld.html
HTML
<script src="http://knockoutjs.com/downloads/knockout-3.2.0.js"></script>
<!-- ko if: t -->
<select data-bind="template: { name: 'selectTemplateType', data: t }, value: selectedId"></select>
<!-- /ko -->
<!-- ko ifnot: t -->
<select>
<option>No templates loaded</option>
</select>
<!-- /ko -->
<div data-bind='text: selectedId'></div>
<script type="text/html" id="selectTemplateType">
<option>Select</option>
<!-- ko foreach: groups -->
<optgroup data-bind="attr: { 'label': name }, foreach: types">
<option data-bind="value: id, text: name"></option>
</optgroup>
<!-- /ko -->
</script>
JavaScript
var t = {
groups: [
{ name: 'a', types: [{id: 1, name: 't1'}] },
{ name: 'b', types: [{id: 102, name: 't2'}, {id: 103, name: 't3'}] },
{ name: 'c', types: [{id: 5, name: 'x'}] }
]
}
var vm = {
t: ko.observable(null),
selectedId: ko.observable(103)
};
ko.applyBindings(vm);
setTimeout(function(){ vm.t(t); }, 2000);