Pregunta

Estoy confundido en cuanto a cuándo y dónde debo declarar mi Modelo ViewModel al usar el complemento de mapeo.

Aquí está mi archivo json:

{
    "members": [
        {
            "memberid": "001",
            "membername": "Jason"
        },
       {
            "memberid": "002",
            "membername": "Bob"
        }
    ]
}

Aquí está la plantilla HTML:

<div data-bind="foreach: members">
<h3 data-bind="text: memberid"></h3>
<p>Name: <span data-bind="text: membername"></span></p>  
</div>

Aquí está el resto:

var data = $.getJSON("members.json",function(data)  
            {
                var viewModel = ko.mapping.fromJSON(data);
                 ko.applyBindings(viewModel);

            }
        );

ko.mapping.fromJSON(data, viewModel);

¡Gracias de antemano por su ayuda!

¿Fue útil?

Solución

Es probable que desee declarar su Modelo ViewModel fuera del cierre, por lo que es más accesible. Por ejemplo:

var viewModel = {};
var data = $.getJSON("members.json",function(data)  
            {
                viewModel.model = ko.mapping.fromJSON(data);
                 ko.applyBindings(viewModel);
            }
        );

Esto crearía el Modelo View, lo haría accesible y expondría la propiedad del modelo (que contendría todos los datos asignados). Podrías omitir la propiedad del modelo y simplemente hacerlo en la VM también. Incluso podría mover las aplicaciones fuera de esto, ya que realmente solo desea que eso se ejecute una vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top