Ajax-Datenbindung mit Knockout Js

Ich benutze dieknockout js, ich finde es schwierig, die Daten zu binden, während in Ajax Get-Methode, ich habe Modell, ViewModel und Ajax-Funktion erstellt, ich habe die Ajax-Methode in der gleichen js-Datei, in der ich ViewModel erstellt habe, ich rufe die Ajax beim Laden der Seite und versuche mein html mit konckout js zu binden, bekomme ich den fehleruserModel is undefined wenn ich @ gethis.name = ko.observale(result[0].name) vor dem Ajax-Aufruf, nach dem Ajax-Aufruf givename is undefined brauchen Sie Hilf

<html>
  <head>
    <script src="js/jquery1.9.js"></script>
    <script src="js/knockout-3.3.0.js"></script>
    <script src="js/knockout.mapping.js"></script>
    <script src="model/usermodel.js"></script>
  </head>

  <body>

    <div>
      <h1><span data-bind="text:user().name"></span></h1>
      <h1><span data-bind="text:user().userName"></span></h1>
    </div>
    <script src="ViewModel/userDetailsViewModel.js"></script>
  </body>
</html>
////Model////
function userModel(result) {
  var self = this;
  this.name = ko.observable(result[0].name); /// give me error undefined before  the ajax call and after ajax call i get the value in result
  this.userName = ko.observable();

}

/////View Model////
var result
var userDetailsViewModel = function(result) {
  self = this;
  self.user = ko.observable(new userModel(result));
};
var mainUserDetailsViewModel = new userDetailsViewModel(result);
ko.applyBindings(mainUserDetailsViewModel);

////ajax called on the page load ////
$.ajax({
  type: "POST",
  dataType: "json",
  url: baseUrl + 'api/xx/xxx',
  data: jason.strigfy(),
  success: function(data) {
    result = data;
    ////I am getting in result json data object 0=["name":"nnnn","Username":"mmmmmm"],
    ////  i am passing this result to ViewModel and to Usermodel Constructor//
    mainUserDetailsViewModel.user(new userModel(result));

  },
  error: function(error) {
    jsonValue = jQuery.parseJSON(error.responseText);
    //jError('An error has occurred while saving the new part    source: ' + jsonValue, { TimeShown: 3000 });
  }
});

Antworten auf die Frage(2)

Ihre Antwort auf die Frage