Sto tentando di popolare un Vue con i dati dallo JsonResult
di una query AJAX. My Vue riceve i dati bene quando li codifico dal mio View Model, ma non quando provo a recuperarli usando AJAX. Ecco come appare il mio codice:Inizializzazione dei dati Vue con AJAX
<script type="text/javascript">
var allItems;// = @Html.Raw(Json.Encode(Model));
$.ajax({
url: '@Url.Action("GetItems", "Settings")',
method: 'GET',
success: function (data) {
allItems = data;
//alert(JSON.stringify(data));
},
error: function (error) {
alert(JSON.stringify(error));
}
});
var ItemsVue = new Vue({
el: '#Itemlist',
data: {
Items: allItems
},
methods: {
},
ready: function() {
}
});
</script>
<div id="Itemlist">
<table class="table">
<tr>
<th>Item</th>
<th>Year</th>
<th></th>
</tr>
<tr v-repeat="Item: Items">
<td>{{Item.DisplayName}}</td>
<td>{{Item.Year}}</td>
<td></td>
</tr>
</table>
</div>
Questo è con tutti gli include. So che @Url.Action("GetItems", "Settings")
restituisce l'URL corretto e che i dati tornano come previsto (come verificato da un avviso nella funzione di successo) (compilare il commento in AJAX). Popolarlo in questo modo: var allItems = @Html.Raw(Json.Encode(Model));
funziona, ma la query AJAX no. sto facendo qualcosa di sbagliato?
dovrete aggiornare i dati-oggetti della vista dopo hai ricevuto i dati. Nota che ajax è asincrono (da cui il nome), quindi avrai solo i dati nella funzione di callback 'successo'! – Jeff
Come posso farlo? Non riesco a fare ItemsVue.data.Items giusto? Non sono sicuro di come aggiornarlo a quel punto ... – muttley91
Immagino di poter creare la mia Vue nella funzione di callback 'successo'! – muttley91