需要将此vue-router功能翻译为ecma脚本2015

时间:2016-09-26 15:14:20

标签: ecmascript-6 vue.js

我没有将以下功能翻译成ecmascript 2015

  route: {
        data: function () {
            return this.$http.get('/api/posts?sort=title&order=1').then(
                    posts=>{this.table.posts = posts.data}
            );
        }
    },

因为this没有引用窗口对象我得到了

[vue-router] Uncaught error during transition: be.js:3660:7

TypeError: undefined has no properties[Learn More]be.js:16572:13

1 个答案:

答案 0 :(得分:0)

您可以使用某些功能,例如shorthand method names和更紧凑的箭头功能,使其看起来更像ES2015,但它不会改变功能:

route: {
    data() {
        return this.$http
            .get('/api/posts?sort=title&order=1')
            .then(posts => { this.table.posts = posts.data });
    }
},

您无法用箭头函数替换data钩子函数,因为this会引用错误的上下文(windowundefined) ,因为this将由其周围的词汇范围定义,无法覆盖。