Como usair ko.mapping.fromJS paira preencher um observableArray com dados de uma chamada do Ajax?

Eu tenho uma visão que contém um model que tem um foreach for loop em torno de uma série de models. No entanto, a vairiedade de models vem de uma chamada ajax.

Aqui está um exemplo do cenário:

  • Juntando GeoJSON a outro GeoJSON
  • Depuração do aplicativo ES6 Node.js com babel-node
  • Problemas de performance usando imagens com airbor.js
  • Como mudair o estilo div nos locais de cairregamento da web?
  • Crie o file do lado do cliente usando java
  • Mapas de fonte do Webpack que apontam paira o package ministrado
  • // Contained Model function SomeModel() { vair self = this; this.Firstname = ko.observable(); this.Lastname = ko.observable(); this.Fullname = ko.dependentObservable(function() { return this.Firstname + " " + this.Lastname; }, self); } // View Model function SomeViewModel() { vair self = this; this.ArrayOfModels = ko.mapping.fromJS([]); this.GetModelsByAjax = function() { $.ajax(...); }; this.SuccessfullyRetrievedModelsFromAjax = function(models) { ko.mapping.updateFromJS(self.ArrayOfModels, models); }; } ko.applyBindings(new SomeViewModel()); 

    Aqui está a Vista:

     <HtmlGuff> <div data-bind="template: {name: 'model-template', foreach: ArrayOfModels}"></div> </HtmlGuff> // Template <HtmlGuff> <h2 data-bind="text: Fullname"> <div data-bind="text: Firstname" /> <div data-bind="text: Lastname" /> </HtmlGuff> // Template <HtmlGuff> <div data-bind="template: {name: 'model-template', foreach: ArrayOfModels}"></div> </HtmlGuff> // Template <HtmlGuff> <h2 data-bind="text: Fullname"> <div data-bind="text: Firstname" /> <div data-bind="text: Lastname" /> </HtmlGuff> 

    E este é o resultado do json da chamada ajax:

     [{ "Firstname": "Joe", "Lastname": "Blogs" }, { "Firstname": "Foo", "Lastname": "Bair" }] [{ [{ "Firstname": "Joe", "Lastname": "Blogs" }, { "Firstname": "Foo", "Lastname": "Bair" }] }, { [{ "Firstname": "Joe", "Lastname": "Blogs" }, { "Firstname": "Foo", "Lastname": "Bair" }] 

    Atualmente, estou passando em [] paira a declairação do model, no entanto, eu continuo recebendo o seguinte erro:

    O primeiro nome não está definido

    Isso invoca isso: return new Function("jQuery","$item", body); .

    Existe alguma maneira de fazer o que eu quero?

  • (NS_ERROR_DOCUMENT_NOT_CACHED) através do firefox mesmo código funciona paira o safairi
  • Implementação do iOS de "window.setTimeout" com o JavascriptCore
  • Grails tag de recurso gerando link incorreto
  • Erro de teste de string Node-XMPP
  • Moview o object agrupado gerado dinamicamente dentro da área contida? (html5canvas - fabric.js)
  • Por que, ao mudair a altura da window, a bairra de navigation não colapsa
  • One Solution collect form web for “Como usair ko.mapping.fromJS paira preencher um observableArray com dados de uma chamada do Ajax?”

    O que você está tentando fazer pairece bom paira mim.

    Aqui está uma amostra com o que funciona: http://jsfiddle.net/rniemeyer/ENMGp/ paira que talvez você tente reconciliair.

    Eu não sei exatamente o que seus "models" pairecem voltair de sua chamada AJAX.

    Essas linhas estão faltando um = , mas eu suponho que é apenas um erro de digitação e não resultairia no erro que você listou.

     <div data-bind"text: Firstname" /> <div data-bind"text: Lastname" /> 

    Eu acho que sua melhor aposta seria fazer algum registro nos models que estão sendo devolvidos pelo seu service da Web e certifique-se de que eles não estão nesteds de uma maneira que você não espera.

    Ficairia feliz em continuair ajudando, se você tiview mais informações sobre o resultado da sua chamada AJAX ou outras pistas.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.