2016-10-13 63 views
3

我有一个孩子的组件,有以下方法:Vue.js访问父组件

getSubscriptions() { 
    MessageService.subscriptions() 
      this.$parent.loading = true; 
      .then((data) => { 
       if (data.data.subscriptions == null) { 
        this.noSubscriptions = true; 
       } else { 
        this.subscriptions = data.data.subscriptions; 
       } 

       this.$parent.loading = false; 
      }).bind(this); 
} 

所以我想说明的负载循环在我父组件访问它是这样的:

this.$parent.loading 

(我的父组件有一个名为loading数据属性)

但是,当我尝试编译与一饮而尽^我得到:

[14:52:56] Starting 'browserify'... 
    46 |        } 
    47 | 
> 48 | t       this.$parent.loading = false; 
    |       ^
    49 |       }).bind(this); 
    50 |    }, 
    51 | 
{ SyntaxError: unknown: Unexpected token (48:28) 
    46 |        } 
    47 | 
> 48 | t       this.$parent.loading = false; 
    |       ^
    49 |       }).bind(this); 
    50 |    }, 

这里有什么问题?

(我使用Vue.js 1.0

回答

3

你把一个新的声明中承诺设置的中间。您需要重新排列代码:

this.$parent.loading = true; 
MessageService.subscriptions() 
     .then((data) => { 

但是,我不会直接访问这样的父项。它在父母和孩子之间创建了一个紧密的耦合 - 这个组件仅在父母暴露loading标志时才起作用。请致电custom events