Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.0/knockout-min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <div>Make<select data-bind="options: makes, optionsText: 'name', value: selectedModel"></select></div>
  <div>Model<select data-bind="options: models, optionsText: 'name'"></select></div>
  <div>
    <div>Selected make: <span data-bind="text: selectedMake().name"></span></div>
    <div>Selected model: <span data-bind="text: selectedModel().name"></span></div>
  </div>
</body>
</html>
 
var data = 
    {
      allMakes: ko.observableArray([ 
        { name: "Toyota" }, 
        { name: "Fiat"} 
      ]),
      allModels: ko.observableArray([
        { name: "Corolla", make: "Toyota" },
        { name: "Celica", make: "Toyota" },
        { name: "Avensis", make: "Toyota" },
        { name: "Uno", make: "Fiat" },
        { name: "Bravo", make: "Fiat" }
      ])
    };
var myViewModel = 
    {
      makes : data.allMakes,
      models: ko.computed(function() {
        console.log(this);
        if (!myViewModel.selectedMake())
          return;
        
        // TODO: filter models by selected make
      }),
      selectedModel: ko.observable(""),
      selectedMake: ko.observable("")
    };
/* Uncomment it to work
myViewModel.models = ko.computed(function() {
if (!myViewModel.selectedMake())
          return;
        
        // TODO: filter models by selected make
      });
*/
ko.applyBindings(myViewModel);
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers