VUEにAJAXクエリのJsonResult
からのデータを入力しようとしています。 My Vueは、ビューモデルからデータをエンコードするときにデータを受け取るだけですが、AJAXを使用してデータを取得しようとするとデータは受信されません。私のコードは次のようになります: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は非同期(したがって名前)なので、 'success'コールバック関数の中にのみデータがあります。 – Jeff
どうすればいいですか? ItemsVue.data.Itemsはできません。私はその時点でそれを更新する方法がわかりません... – muttley91
私は 'success'コールバック関数で私のVueを作成することができますね! – muttley91