这是执行顺序的问题。主Vue实例在其内部的东西被编译之后才“就绪”。这包括
hello
组成部分
如果你需要知道
bar
在使用之前已设置,您可以通过几种方式进行监控。你可以
$broadcast
家长中的一个事件,让孩子知道
酒吧
已加载。或者你可以使用
watch
函数在子组件中进行更改
酒吧
更新。
如果你
$set
酒吧
在里面
created()
,然而
vue-resource
不管怎样,你都会有延误,所以你需要考虑以下事实
greeting
在孩子的时候不会准备好
ready()
作用您要么必须设计DOM结构来处理以下事实
招呼
可以是
undefined
,否则您必须使用事件或
看
函数来自己等待它。
示例:
$广播
:
Vue.component('hello', {
template: 'From hello tag: {{ greeting }}',
props: ['greeting'],
ready: function() {
},
events:{
'bar-ready':function(){
alert(this.greeting)
}
}
});
new Vue({
el: '#app',
created: function() {
this.$http.get('/path')
.then(function(response){
this.$set('bar',response.data);
this.$broadcast('bar-ready')
}.bind(this))
}
});
$广播
文档:
https://vuejs.org/api/#vm-broadcast