当我初始化我的vue.js 2.0 app时,我会创建window.User
个对象。
这一切都很顺利。然后在一些组件中,我正在使用它 模板:
v-if="this.User.role == 2"
因此,在某些组件中,这是有效的,有些则不是-_-(Cannot read property 'role' of undefined
)。这怎么可能呢?在组件不起作用的地方,我试过这个:
created() {
alert(window.User.role);
}
正确的结果出现了!但是在模板中它不起作用。这可能会发生什么。非常令人沮丧的事情。
在我的 bootstrap.js :
中window.User = Laravel.user;
我以同样的方式注册我的所有组件:
Vue.component('corporations', require('./components/corporation/Corporations.vue'));
答案 0 :(得分:2)
如果User
的行为类似于您希望在所有组件中访问的全局变量,并且您希望它是被动的,则可以将其添加到根Vue的数据中,然后在其他任何地方引用它{{{ 1}}。
您还可以使用mixin声明this.$root.User
,使其在所有使用mixin的组件上都可用。像这样:
computed
mixin可能是更好的选择。