Question

Je suis confus quand et où je dois déclarer mon viewmodel lors de l'utilisation du plug-in de mappage.

Voici mon fichier JSON:

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

Voici le modèle html:

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

Voici le reste:

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

            }
        );

ko.mapping.fromJSON(data, viewModel);

Merci d'avance pour votre aide!

Était-ce utile?

La solution

Vous voulez probablement déclarer votre viewmodel en dehors de la fermeture, il est donc plus accessible. Par exemple:

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

Cela créerait le viewmodel, le rendre accessible, et exposer la propriété du modèle (qui contiendrait toutes les données cartographiées). Vous pouvez ignorer la propriété modèle et juste le faire sur la vm, aussi. Vous pouvez même déplacer les applyBindings en dehors de cela, puisque vous voulez vraiment seulement que pour exécuter une fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top