Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
Establecer valor de observable en función asíncrona

Estoy usando DevExtreme y knockout. Quiero obtener JSON-Data de un servidor y guardarlo en un observable.

Enfoque actual:

 var dataArray = ko.observableArray(); var dataId = ko.observable(""); MyApp.overview = function (params) { "use strict"; var viewModel = { [...] } return viewModel; }; function getDataFromJson() { $.ajax({ url: 'http://localhost:56253/test/3?format=json', dataType: 'json', success: function (data) { var entries = $.map(data, function (item) { return new entry(item) }); // first entry is ID for (var i = 1; i < entries.length; i++) { dataArray.push(entries[i]); } } }); } function getIDFromJson() { $.ajax({ url: 'http://localhost:56253/test/3?format=json', dataType: 'json', success: function (data) { dataId(data.ID); } }); } function entry(data) { this.A = data.A, this.B = data.B, this.C = data.C }

Soy nuevo en estos escenarios, así que no estoy seguro si mi enfoque. Para la prueba, estoy llamando a las funciones para obtener los datos JSON manualmente a través de botones, y obtengo los datos necesarios, pero los observables contienen esto:

 function c(){if(0<arguments.length)return c.tb(c[E],arguments[0])&&(c.ga(),c[E]=arguments[0],c.fa()),this;aloc(c);return c[E]}

¿Qué me estoy perdiendo? ¿O es este enfoque una mala práctica en general?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Cómo lo hago es usando el complemento de mapeo Knockout y el comando fromJSON (es posible que deba usar fromJS dependiendo de su formato de datos), esto mapea los datos tal como provienen de la fuente.

 function getDataFromJson() { $.ajax({ url: 'http://localhost:56253/test/3?format=json', dataType: 'json', success: function (data) { ko.mapping.fromJSON(data, {}, self.dataArray); } }); }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda