Próbuję wypełnić Vue danymi z JsonResult
zapytania AJAX. Moja Vue odbiera dane po prostu dobrze, gdy koduję je z mojego Modelu widoku, ale nie wtedy, gdy próbuję go pobrać przy użyciu AJAX. Oto, jak wygląda mój kod:Inicjowanie danych Vue za pomocą 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>
Jest to ze wszystkimi właściwymi załącznikami. Wiem, że @Url.Action("GetItems", "Settings")
zwraca poprawny adres URL, a dane wracają zgodnie z oczekiwaniami (testowane przez alert w funkcji sukcesu (zobacz komentarz w funkcji sukcesu w AJAX). Wypełniając go tak: var allItems = @Html.Raw(Json.Encode(Model));
działa, ale kwerenda AJAX nie. Czy robię coś źle?
musisz aktualizować dane-elementy widoku po otrzymałeś dane. Zauważ, że ajax jest asynchroniczny (stąd nazwa), więc będziesz miał tylko dane w funkcji zwrotnej 'success'! – Jeff
Jak mogę to zrobić? Nie mogę zrobić ItemsVue.data.Items w porządku? Nie jestem pewien, jak zaktualizować go w tym momencie ... – muttley91
Myślę, że mogę po prostu utworzyć mój Vue w funkcji zwrotu "sukces"! – muttley91