Async anonym object binding

in KO

by Salmin Skenderovic

HTML

<label>syncObj: </label><span data-bind="text: ko.toJSON(syncObj)"></span>
<br>
<label>syncStr: </label><span data-bind="text: ko.toJSON(syncStr)"></span>
<br>
<br>
<label>aSyncObj: </label><span data-bind="text: ko.toJSON(aSyncObj)"></span>
<br>
<label>aSyncStr: </label><span data-bind="text: ko.toJSON(aSyncStr)"></span>
<br>
<br>
<label>knownAsyncObject: </label><span data-bind="text: ko.toJSON(knownAsyncObject)"></span>
<br>

JavaScript

function ViewModel() {

	var self = this;
  
  self.syncObj = ko.observable({});
  self.syncStr = ko.observable("");
  
  self.aSyncObj = ko.observable({});
  self.aSyncStr = ko.observable("");
  
  self.knownAsyncObject = ko.observable({});
      
  var key = "whatever";
  var value = "dick";
      
	var setSync = (function setSync() {
      self.syncObj()[key] = value;
      self.syncStr(value);
  })();
  
  var setAsync = (function setAsync() {
    setTimeout(function(){
    		var solution = {};
        solution[key] = value;
        
        self.aSyncObj(solution);
        //How do we set key?
        self.knownAsyncObject
        self.aSyncStr(value);
      }, 1000);
  })();

}

var vm = new ViewModel();
ko.applyBindings(vm);