Knockout JS mappatura plug-in confusione
-
27-10-2019 - |
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!
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