我正在嘗試使用AJAX查詢的JsonResult
中的數據填充Vue。當我從我的視圖模型對它進行編碼時,我的Vue接收數據就好了,但當我嘗試使用AJAX檢索它時,我的Vue沒有收到數據。這是我的代碼的樣子:使用AJAX初始化Vue數據
<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>
這是與所有適當的包括。我知道@Url.Action("GetItems", "Settings")
返回正確的URL,並且數據按預期返回(通過成功函數中的警報測試(請參閱AJAX中的成功函數中的註釋)。如下所示填充它:var allItems = @Html.Raw(Json.Encode(Model));
有效,但AJAX查詢不適用。我是不是做錯了什麼?
你必須後更新視圖的數據項你已收到數據。請注意,ajax是異步的(因此名稱),所以您只會在'success'回調函數中擁有數據! – Jeff
我該怎麼做?我不能做ItemsVue.data.Items嗎?我不知道如何更新它... – muttley91
我想我可以在'success'回調函數中創建我的Vue! – muttley91