Domanda

Sono confuso su quando e dove devo dichiarare il mio ViewModel quando si utilizza il plugin mappatura.

Ecco il mio file JSON:

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

Ecco il modello HTML:

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

Ecco il resto:

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

            }
        );

ko.mapping.fromJSON(data, viewModel);

Grazie in anticipo per il vostro aiuto!

È stato utile?

Soluzione

È probabile che vuole dichiarare il vostro al di fuori ViewModel della chiusura, quindi è più accessibile. Ad esempio:

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

Questo creerebbe il ViewModel, renderla accessibile, ed esporre la proprietà del modello (che conterrebbe tutti i dati mappati). Si potrebbe saltare la proprietà del modello e basta sul vm, anche. Si potrebbe anche spostare i applyBindings al di fuori di questo, dal momento che si vuole veramente solo che per eseguire una sola volta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top