我正在尝试使用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