<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8" />
    <title>Example - example-heroComponentSimple-production</title>
    <script data-require="jquery@2.1.3" data-semver="2.1.3" src="//code.jquery.com/jquery-2.1.3.min.js"></script>
    <script data-require="knockout@3.3.0" data-semver="3.3.0" src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
    <script src="controller.js"></script>
    <style>
    .disabledText {
      color: #ccc;
      
    }
    .memberOf {
      color: #999;
    }
    
    
  </style>
  </head>

  <body>
      <h1>Knockout -  Async Updates? Sure no problem!</h1>
      <h2>Color shows up 2 seconds later</h2>

      <input type="text" data-bind="value: colorName" />
      <button data-bind="click: addColor">add color</button>
      <div data-bind="foreach:colors">
        <span data-bind="text:colorName"></span><br />
      </div>
    </div>
  </body>

</html>
var Color = function(options) {
  var self = this;
  self.colorName = options.colorName;
};

$(document).ready(function() {
  var viewModel = function() {
    var self = this;
    self.colorName = ko.observable('');
    self.colors = ko.observableArray([
      new Color({colorName: 'Red'}),
      new Color({colorName: 'Blue'}), 
      new Color({colorName: 'Green'})
      ]);
      
    self.addColor = function() {
      console.log("added a new color " + self.colorName());
      setTimeout(function() {
        console.log("added new color in Async style");
        self.colors.push(new Color({colorName: self.colorName()}));
        }, 2000);
    };
    
};
	
	var vm = new viewModel();
	ko.applyBindings(vm);
});