如何在Vue.js中传递动态页面:id到$ http.get url

Jac*_*ham 3 javascript ajax jquery vue.js

我有视图路由器设置:

router.map({
    '/tracks/:id': {
        component: SingleTrack
    }
})
Run Code Online (Sandbox Code Playgroud)

这是我的组件(使用硬编码的URL):

var SingleTrack = Vue.component('track', {

    template: '#track-template',

    data: function() {
        return {
            track: ''
        }
    },

    ready: function() {
        this.$http.get('//api.trax.dev/tracks/1', function (data) {
            this.$set('track', data.track)
        })
    }
});
Run Code Online (Sandbox Code Playgroud)

如何将url /:id传递给$http.get字符串的末尾,以便在加载该路由时动态获取正确的数据,如:

ready: function(id) {
    this.$http.get('//api.trax.dev/tracks/' + id, function (data) {
        this.$set('track', data.track)
    })
}
Run Code Online (Sandbox Code Playgroud)

Pan*_*olo 6

您应该能够从组件$route属性获取route参数:

var itemId = this.$route.params.id;
this.$http.get('//api.trax.dev/tracks/' + itemId, function (data) {
    this.$set('track', data.track)
})
Run Code Online (Sandbox Code Playgroud)

请参阅vue.js路由器文档中的更多详细信息