Vue를 처음 사용하여 API에서 JSON 응답을 검색하고 내 페이지에이 텍스트를 인쇄하려고합니다. 다음은 JSON을 반복하고 Vue.js의 값을 인쇄하십시오.
<body>
<div id="mystats" class="container">
<h1>My Top Tracks</h1>
<ol>
<li v-for="track in tracks">@{{ track.name }}</li>
</ol>
<pre>@{{ tracks|json }}</pre>
<button v-on:click="fetchStats">Fetch stats</button>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.3/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-resource/1.0.3/vue-resource.min.js"></script>
<script type="text/javascript">
$vue = new Vue({
el: '#mystats',
data: {
tracks: [],
},
methods: {
fetchStats: function()
{
this.$http.get('/mystatsdata', {params: {type: 'tracks'}}).then((response) => {
this.tracks.push(response.body);
console.log(this.tracks.name);
}, (response) => {
// error callback
});
}
}
})
</script>
</body>
내가 다시 얻고 응답입니다 :
이
내가 지금까지 무엇을 가지고<ol>
<li v-for="track in tracks">@{{ track.name }}</li>
</ol>
가되지 않습니다 :
[
[
{
"name": "Falling Away - Acoustic (Bonus Track)",
"track_number": 8,
"type": "track",
}
]
]
문제 것은하는 것입니다 트랙 이름을 출력합니다.
제 콘솔에 오류가 없으므로 Javascript 및 Vue.js에 조금 익숙하지 않아서 어디에서 잘못 될지 잘 모르겠습니다.
어떻게 이름을 표시 할 수 있습니까? 여기에 편집
는 (현재 2에 한함) 둘 이상의 항목에 대한 응답입니다 :
[
[
{
"name": "Falling Away - Acoustic (Bonus Track)",
"track_number": 8,
"type": "track",
},
{
"name": "Perfect Strangers",
"track_number": 1,
"type": "track",
}
]
]
개체 배열 배열을 받고 있습니다. 두 가지 결과를 어떻게 반환하는지 보여 줄 수 있습니까? –
@craig_h가 작동하는 다른 – James
@craig_h를 추가했지만 2를 반환해야하는 경우에만 하나의 결과 만 반환했습니다. 즉 응답에 두 개의 트랙이 있고 첫 번째 트랙 만 표시됩니다. – James